我正在使用NLTK和TextBlob在文本中查找名词和名词短语:

from textblob import TextBlob
import nltk

blob = TextBlob(text)
print(blob.noun_phrases)
tokenized = nltk.word_tokenize(text)
nouns = [word for (word, pos) in nltk.pos_tag(tokenized) if is_noun(pos)]
print(nouns)

如果我的文字是英语,那会很好,但是如果我的文字是法文,那就不好了。

我找不到如何使该代码适合法语的方法,该怎么做?

在所有可能解析的语言中是否有 list ?

最佳答案

默认情况下,NLTK使用英语 token 生成器,对于法语,它将具有奇怪或未定义的行为。
@fpierron是正确的。如果阅读了其中提到的文章,则只需加载正确的 token 生成器语言模型并在程序中使用它。

import nltk.data
# chargement du tokenizer
tokenizer = nltk.data.load('tokenizers/punkt/PY3/french.pickle')
tokens = tokenizer.tokenize("Jadis, une nuit, je fus un papillon, voltigeant, content de son sort. Puis, je m’éveillai, étant Tchouang-tseu. Qui suis-je en réalité ? Un papillon qui rêve qu’il est Tchouang-tseu ou Tchouang qui s’imagine qu’il fut papillon ?")

print(tokens)

['Jadis, une nuit, je fus un papillon, voltigeant, content de son sort.', 'Puis, je m’éveillai, étant Tchouang-tseu.', 'Qui suis-je en réalité ?', 'Un papillon qui rêve qu’il est Tchouang-tseu ou Tchouang qui s’imagine qu’il fut papillon ?']
如果没有正确的文件,则可以使用“nltk.download()”为法语下载正确的模型。
如果您在 token 生成器上查看NLTK的网站,则还有其他一些示例。 http://www.nltk.org/api/nltk.tokenize.html

关于Python:法语中的NLTK和TextBlob,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42058396/

10-16 06:19