Python 是否可以将您自己的WordNet添加到库中?

Python 是否可以将您自己的WordNet添加到库中?,python,machine-learning,nlp,nltk,spacy,Python,Machine Learning,Nlp,Nltk,Spacy,我有一个丹麦WordNet的.txt文件。是否有任何方法可以将其与用于Python的NLP库(如NLTK)一起使用?如果不是,您如何使用给定库不支持的语言进行自然语言处理。也就是说,您希望在spaCy这样的库中使用英语或荷兰语以外的语言进行命名实体识别。有什么方法可以做到这一点吗?有什么方法可以将它与用于Python的NLP库(如NLTK)一起使用吗? 你可以用NLTK来做这件事,虽然有点尴尬 您需要将WordNet语料库转换为一种简单的制表符分隔格式。请注意,他们已经有了一个丹麦WordNet

我有一个丹麦WordNet的.txt文件。是否有任何方法可以将其与用于Python的NLP库(如NLTK)一起使用?如果不是,您如何使用给定库不支持的语言进行自然语言处理。也就是说,您希望在spaCy这样的库中使用英语或荷兰语以外的语言进行命名实体识别。有什么方法可以做到这一点吗?

有什么方法可以将它与用于Python的NLP库(如NLTK)一起使用吗?

你可以用NLTK来做这件事,虽然有点尴尬

您需要将WordNet语料库转换为一种简单的制表符分隔格式。请注意,他们已经有了一个丹麦WordNet

然后你应该安装WordNet并在NLTK中打开多语言WordNet语料库,如果你还没有这样做的话。这将创建一个类似于
~/nltk\u data/corba/omw/
的目录,每个语言文件都有一个子目录。您需要为语料库创建一个目录,并将文件命名为:

~/nltk_data/corpora/omw/xxx/wn-data-xxx.tab
xxx
可以是任何东西,但它在两个位置都必须相同。此文件名模式是在NLTK中硬编码的

之后,您可以通过将
xxx
指定为
lang
参数来使用WordNet。下面是一个例子:

在给定库不支持的语言中,您如何处理自然语言?

我经常和日本人这样做

有些技术会查看您的令牌内部——也就是说,它们会检查单词是否正确 字面意思是“说”或“是”或什么的。这在词干分析器和 柠檬化剂有明显的原因。有些系统使用基于假设的规则 关于特定语言(通常是英语)中词类的相互作用。你 可能能够将这些期望转化为您的语言,但通常 你就是不能用这些

然而,许多有用的技术根本不会查看您的令牌内部——它们是 只需关心两个标记是否相等。这些通常主要依赖于 标签或搭配数据等功能。您可能需要预先标记您的 数据,您可能希望在中的Wikipedia上培训通用语言模型 语言,但仅此而已。例如词向量、NER、文档相似性 缺乏语言支持通常不是问题的问题

也可以说您希望在spaCy这样的库中使用英语或荷兰语以外的语言进行命名实体识别。有没有办法做到这一点?

SpaCy为NER提供了一种方法。将其与 否则,不支持的语言将没有文档记录,这将有点棘手。 但是,由于不需要NER的完整语言模型,因此可以使用NER 带有标签示例的特定工具

下面是一些示例培训数据 基于CoNLL格式:

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
..
这种格式由几个CRF或其他NER工具支持。CRFSuite是一个具有

对于这类数据,算法并不真正关心第一列中的内容,因此语言支持不是问题


希望有帮助

简单回答:你不能。API只支持它所支持的(这是spaCy最大的缺点之一)。答案很长,如果你真的知道自己在做什么,我想你可以自己编辑源代码。@Posh_Pumpkin,这是不对的。可以扩展API,因为它是一个开源项目,请参阅。即使对于spacy,我相信@honnibal和@ines也会鼓励贡献:@alvas,是的。这不算编辑源代码吗?我很确定这不是OP想要的。首先,它是
python
,即使是
CPython
也包含用
Python
=)编写的代码,我不认为任何计算语言/算法/库已经发展到这样一个阶段:我们可以放入任何文件并期望输出,而无需编写代码或按下可怕GUI上的按钮;P#nomorecomment为避免长时间的讨论,请使用stackoverflow聊天。@alvas我不知道这些在这里有什么关系。我说过如果他愿意,他可以编辑来源。也很抱歉,我不知道如何使用手机聊天,所以我真的不希望扩展这个毫无意义的讨论。。
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
..