默認NLTK使用英文標記生成器,這將有奇怪的或不確定的行爲爲法語。
@fpierron是正確的。如果您閱讀它提到的文章,您只需加載正確的標記語言模型並在程序中使用它。
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)
['Le', 'courage', 'de', 'la', 'goutte', 'd', "'", 'eau', ',', 'c', "'", 'est', 'qu', "'", 'elle', 'ose', 'tomber', 'dans', 'le', 'désert', '.']
如果你沒有,你可以使用正確的文件「nltk.download()」以下載正確的模型法語。
如果你看看tokenizer上的NLTKs網站,還有一些其他的例子。 http://www.nltk.org/api/nltk.tokenize.html
您有兩個單獨的代碼片段。一個使用'TextBlob'(第1行和第2行)。另一個使用'nltk'(3-5行)。哪一個不起作用? – DyZ
@DYZ都可以使用英文文本,但兩者都不能使用法文文本。使用法語文本Textblob會報告名詞短語並非真正的短語,並且nltk會報告不是名詞的單詞 – Sulli