我认为没有明确的法语模型word_tokenize(这是用于英语 Penn Treebank 的修改后的树库标记器)。'
该函数在实际单词标记化之前word_tokenize使用该函数执行句子标记化。sent_tokenizein的language参数word_tokenize仅用于该sent_tokenize部分。
或者,您可以使用MosesTokenizer具有某些语言相关正则表达式的 (并且它确实支持法语):
>>> from nltk.tokenize.moses import MosesTokenizer
>>> moses = MosesTokenizer(lang='fr')
>>> sent = u"Le télétravail n'aura pas d'effet sur ma vie"
>>> moses.tokenize(sent)
[u'Le', u't\xe9l\xe9travail', u'n'', u'aura', u'pas', u'd'', u'effet', u'sur', u'ma', u'vie']
如果你不喜欢 Moses 转义特殊的 XML 字符,你可以这样做:
>>> moses.tokenize(sent, escape=False)
[u'Le', u't\xe9l\xe9travail', u"n'", u'aura', u'pas', u"d'", u'effet', u'sur', u'ma', u'vie']
解释为什么拆分n'和d'在法语 NLP 中很有用。
从语言上讲,将n'and分开d'确实是有意义的,因为它们是具有自己的句法和语义属性但与根/主机绑定的小团。
在法语中,ne ... pas将是表示否定的不连续成分,negoing to的小结性质n'是因为以下单词中的元音开始ne,因此将 then'与 the分开aura确实更容易识别ne ... pas。
在 的情况下d',它与以下单词中元音开头的语音动机相同,从de effet->开始d'effet。