我正在寻找pos_tag
法语句子的方法,如下面的代码用于英语句子:
def pos_tagging(sentence):
var = sentence
exampleArray = [var]
for item in exampleArray:
tokenized = nltk.word_tokenize(item)
tagged = nltk.pos_tag(tokenized)
return tagged
答案 0 :(得分:12)
这里是完整的代码源,它运行得很好 下载链接Standford NLP https://nlp.stanford.edu/software/tagger.shtml#About
from nltk.tag import StanfordPOSTagger
jar = 'C:/Users/m.ferhat/Desktop/stanford-postagger-full-2016-10-31/stanford-postagger-3.7.0.jar'
model = 'C:/Users/m.ferhat/Desktop/stanford-postagger-full-2016-10-31/models/french.tagger'
import os
java_path = "C:/Program Files/Java/jdk1.8.0_121/bin/java.exe"
os.environ['JAVAHOME'] = java_path
pos_tagger = StanfordPOSTagger(model, jar, encoding='utf8' )
res = pos_tagger.tag('je suis libre'.split())
print (res)
答案 1 :(得分:3)
NLTK并没有为法语预先建立资源。我推荐使用Stanford tagger,它带有训练有素的法国模特。 This code显示了如何设置nltk以供斯坦福法国POS标记使用。请注意,代码已过时(对于Python 2),但您可以将其用作起点。
或者,NLTK可以很容易地在标记的语料库上训练您自己的POS标记器,并将其保存以供以后使用。如果您可以访问(足够大)法语语料库,则可以按照the nltk book中的说明操作,只需使用语料库代替布朗语料库。您不太可能匹配斯坦福标记器的性能(除非您可以为特定域训练标记器),但您不必安装任何东西。