我认为没有明确的法语模型word_tokenize
(这是用于英语 Penn Treebank 的修改后的树库标记器)。'
该函数在实际单词标记化之前word_tokenize
使用该函数执行句子标记化。sent_tokenize
in的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
将是表示否定的不连续成分,ne
going to的小结性质n'
是因为以下单词中的元音开始ne
,因此将 then'
与 the分开aura
确实更容易识别ne ... pas
。
在 的情况下d'
,它与以下单词中元音开头的语音动机相同,从de effet
->开始d'effet
。