sn3*_*d3r 11 python nlp machine-learning nltk spacy
我有丹麦WordNet的.txt文件.有没有办法将这个用于Python的NLP库,如NLTK?如果没有,您将如何使用给定库不支持的语言进行自然语言处理.还要说你想在像spaCy这样的库中用英语或荷兰语以外的语言进行命名实体识别.有没有办法做到这一点?
有什么方法可以将它与NLTK等Python NLP库一起使用吗?
您可以使用NLTK做到这一点,尽管有点尴尬。
您需要将WordNet语料库转换为Open Multilingual Wordnet格式,这是一个简单的制表符分隔格式。请注意,他们已经拥有丹麦语WordNet。
然后,如果尚未安装WordNet和Open Multilingual Wordnet语料库,则应在NLTK中安装它。这将创建一个目录,例如~/nltk_data/corpora/omw/,每个语言文件都有一个子目录。您需要通过为其创建目录并命名文件来添加语料库,如下所示:
~/nltk_data/corpora/omw/xxx/wn-data-xxx.tab
Run Code Online (Sandbox Code Playgroud)
xxx可以是任何东西,但在两个地方都必须相同。此文件名模式在此处 NLTK中进行了硬编码。
之后,您可以通过指定xxx作为lang参数来使用WordNet 。这是文档中的示例:
>>> wn.synset('dog.n.01').lemma_names('ita') # change 'ita' to 'xxx'
['cane', 'Canis_familiaris']
Run Code Online (Sandbox Code Playgroud)
如何使用给定库不支持的语言进行自然语言处理?
我经常用日语做到这一点。
有些技术会在您的令牌中查找-即,它们检查单词是否确实是“ say”或“ be”之类的。出于明显的原因,这在词干提取器和成词机中很常见。一些系统使用规则的假设是基于语音部分如何以给定语言(通常是英语)交互的假设。您也许可以将这些期望转换为您的语言,但通常情况下您根本无法使用这些期望。
但是,许多有用的技术根本不看待令牌内部-它们只是在乎两个令牌是否相等。这些通常主要依靠标签或并置数据等功能。您可能需要预先标记数据,并且可能想要在Wikipedia上使用该语言训练通用语言模型,仅此而已。单词向量,NER,文档相似性是示例问题,在这些示例问题中,通常缺少语言支持。
还要说您想在诸如spaCy之类的库中使用英语或荷兰语以外的语言进行命名实体识别。有什么办法吗?
SpaCy提供了一种用于NER 的自定义标签的方法。没有记录将它与其他不受支持的语言一起使用,这会有些棘手。但是,由于您不需要NER的完整语言模型,因此可以将带有NER的特定工具与带有示例的示例一起使用。
这是一些基于CoNLL格式的CRF ++训练数据示例 :
He PRP B-NP
reckons VBZ B-VP
the DT B-NP
current JJ I-NP
account NN I-NP
deficit NN I-NP
will MD B-VP
narrow VB I-VP
to TO B-PP
only RB B-NP
# # I-NP
1.8 CD I-NP
billion CD I-NP
in IN B-PP
September NNP B-NP
. . O
He PRP B-NP
reckons VBZ B-VP
..
Run Code Online (Sandbox Code Playgroud)
几种CRF或其他NER工具都支持这种格式。CRFSuite是带有Python包装器的一个。
对于此类数据,该算法实际上并不关心第一列中的内容,因此语言支持不是问题。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |