su anda bır tane Part of speech ve taggıng konularıyla ılgılı nltk ıle kelımelerın taranılması ve negatıv/pos olarak sınıflandırlması uzerıne bır proje uzeırne ugrasıyorum
kodlar kulandıgım proejedendır
part of speech ıle ılgılenen arkadasların ısıen yarabılır
from nltk.tag.sequential import SequentialBackoffTagger
from nltk.probability import FreqDist
from nltk.tag import ClassifierBasedPOSTagger
from concept.stems import phonetics
from concept.stems.metaphone import dm
class PhoneticClassifierBasedPOSTagger(ClassifierBasedPOSTagger):
def __init__(self, double_metaphone=False, metaphone=False, soundex=False, nysiis=False, caverphone=False, *args, **kwargs):
self.funs = {}
if double_metaphone:
self.funs['double-metaphone'] = lambda s: dm(unicode(s))
if metaphone:
self.funs['metaphone'] = phonetics.metaphone
if soundex:
self.funs['soundex'] = phonetics.soundex
if nysiis:
self.funs['nysiis'] = phonetics.nysiis
if caverphone:
self.funs['caverphone'] = phonetics.caverphone
ClassifierBasedPOSTagger.__init__(self, *args, **kwargs)
def feature_detector(self, tokens, index, history):
feats = ClassifierBasedPOSTagger.feature_detector(self, tokens, index, history)
s = tokens[index]
for key, fun in self.funs.iteritems():
feats[key] = fun(s)
return feats
class MaxVoteBackoffTagger(SequentialBackoffTagger):
def __init__(self, *taggers):
self._taggers = taggers
def choose_tag(self, tokens, index, history):
tags = FreqDist()
for tagger in self._taggers:
tags.inc(tagger.choose_tag(tokens, index, history))
return tags.max()