python 中的 Nltk 法语分词器无法正常工作
Nltk french tokenizer in python not working
为什么 python 附带的法语分词器对我不起作用?
我做错了什么吗?
我在做
import nltk
content_french = ["Les astronomes amateurs jouent également un rôle important en recherche; les plus sérieux participant couramment au suivi d'étoiles variables, à la découverte de nouveaux astéroïdes et de nouvelles comètes, etc.", 'Séquence vidéo.', "John Richard Bond explique le rôle de l'astronomie."]
tokenizer = nltk.data.load('tokenizers/punkt/PY3/french.pickle')
for i in content_french:
print(i)
print(tokenizer.tokenize(i))
但是我得到了非标记化的输出,比如
John Richard Bond explique le rôle de l'astronomie.
["John Richard Bond explique le rôle de l'astronomie."]
tokenizer.tokenize()
是句子标记器(拆分器)。如果你想标记单词然后使用 word_tokenize()
:
import nltk
from nltk.tokenize import word_tokenize
content_french = ["Les astronomes amateurs jouent également un rôle important en recherche; les plus sérieux participant couramment au suivi d'étoiles variables, à la découverte de nouveaux astéroïdes et de nouvelles comètes, etc.", 'Séquence vidéo.', "John Richard Bond explique le rôle de l'astronomie."]
for i in content_french:
print(i)
print(word_tokenize(i, language='french'))
此 Tokenizer 的问题在于它不是法语句子的有效分词器:
from nltk.tokenize import word_tokenize
content_french = ("John Richard Bond explique le rôle de l'astronomie.")
word_tokenize(content_french, language='french')
>> ['John', 'Richard', 'Bond', 'explique', 'le', 'rôle', 'de', "l'astronomie", '.']
"l'astronomie"
应标记为 ["l'", 'astronomie']
。
您可以使用 RegexpTokenizer
构建更好的分词器,如下所示:
from nltk import RegexpTokenizer
toknizer = RegexpTokenizer(r'''\w'|\w+|[^\w\s]''')
toknizer.tokenize(content_french)
>> ['John', 'Richard', 'Bond', ...,"l'", 'astronomie', '.']
为什么 python 附带的法语分词器对我不起作用? 我做错了什么吗?
我在做
import nltk
content_french = ["Les astronomes amateurs jouent également un rôle important en recherche; les plus sérieux participant couramment au suivi d'étoiles variables, à la découverte de nouveaux astéroïdes et de nouvelles comètes, etc.", 'Séquence vidéo.', "John Richard Bond explique le rôle de l'astronomie."]
tokenizer = nltk.data.load('tokenizers/punkt/PY3/french.pickle')
for i in content_french:
print(i)
print(tokenizer.tokenize(i))
但是我得到了非标记化的输出,比如
John Richard Bond explique le rôle de l'astronomie.
["John Richard Bond explique le rôle de l'astronomie."]
tokenizer.tokenize()
是句子标记器(拆分器)。如果你想标记单词然后使用 word_tokenize()
:
import nltk
from nltk.tokenize import word_tokenize
content_french = ["Les astronomes amateurs jouent également un rôle important en recherche; les plus sérieux participant couramment au suivi d'étoiles variables, à la découverte de nouveaux astéroïdes et de nouvelles comètes, etc.", 'Séquence vidéo.', "John Richard Bond explique le rôle de l'astronomie."]
for i in content_french:
print(i)
print(word_tokenize(i, language='french'))
此 Tokenizer 的问题在于它不是法语句子的有效分词器:
from nltk.tokenize import word_tokenize
content_french = ("John Richard Bond explique le rôle de l'astronomie.")
word_tokenize(content_french, language='french')
>> ['John', 'Richard', 'Bond', 'explique', 'le', 'rôle', 'de', "l'astronomie", '.']
"l'astronomie"
应标记为 ["l'", 'astronomie']
。
您可以使用 RegexpTokenizer
构建更好的分词器,如下所示:
from nltk import RegexpTokenizer
toknizer = RegexpTokenizer(r'''\w'|\w+|[^\w\s]''')
toknizer.tokenize(content_french)
>> ['John', 'Richard', 'Bond', ...,"l'", 'astronomie', '.']