2017-08-29 5 views
2

Lorsque les textes tokenizing qui contiennent à la fois chinois et anglais, le résultat va diviser les mots anglais en lettres, ce qui n'est pas ce que je veux. Considérez le code suivant:Tokenizing les textes en chinois et en anglais divise incorrectement les mots anglais en lettres

from nltk.tokenize.stanford_segmenter import StanfordSegmenter 
segmenter = StanfordSegmenter() 
segmenter.default_config('zh') 
print(segmenter.segment('哈佛大学的Melissa Dell')) 

La sortie sera 哈佛大学 的 M e l i s s a D e l l. Comment puis-je modifier ce comportement?

Répondre

0

Je ne peux pas parler pour nltk, mais Stanford CoreNLP ne présentera pas ce comportement s'il est exécuté sur cette phrase.

Si vous émettez cette commande sur votre exemple, vous obtenez tokenization approprié:

java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -props StanfordCoreNLP-chinese.properties -file example.txt -outputFormat text 

Vous voudrez peut-être regarder dans stanza si vous souhaitez accéder à Stanford CoreNLP via Python.

Plus d'informations ici: https://github.com/stanfordnlp/stanza