Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何给法语句子加上POS_标签?_Python 3.x_Nltk_Pos Tagger_French - Fatal编程技术网

Python 3.x 如何给法语句子加上POS_标签?

Python 3.x 如何给法语句子加上POS_标签?,python-3.x,nltk,pos-tagger,french,Python 3.x,Nltk,Pos Tagger,French,我正在寻找一种方法来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 NL

我正在寻找一种方法来
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

NLTK没有为法语提供预构建的资源。我建议使用,这是一个训练有素的法国模型。显示如何设置nltk以与斯坦福的法语POS标记器一起使用。请注意,该代码已经过时(对于Python2也是如此),但您可以将其用作起点


或者,NLTK可以很容易地在标记的语料库上训练您自己的词性标记,并将其保存以供以后使用。如果您可以访问(足够大的)法语语料库,您可以按照中的说明使用您的语料库来代替棕色语料库。您不太可能达到Stanford tagger的性能(除非您可以为您的特定域培训一个tagger),但您不必安装任何东西。

这是它运行良好的完整代码源 斯坦福德NLP下载链接


顺便说一下,你的循环什么都不做。如果
句子
是字符串,只需调用
nltk.word\u tokenize(句子)
并将结果传递给
nltk.pos\u tag()
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)