- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个丹麦语 WordNet 的 .txt 文件。有什么方法可以将它与 NLTK 等 Python 的 NLP 库一起使用吗?如果不是,您将如何使用给定库不支持的语言进行自然语言处理。还说你想在像 spaCy 这样的库中用英语或荷兰语以外的语言进行命名实体识别。有什么办法吗?
最佳答案
有什么方法可以将其与 NLTK 等 Python 的 NLP 库一起使用吗?
你可以用 NLTK 做到这一点,尽管它有点笨拙。
您需要将 WordNet 语料库转换为 Open Multilingual Wordnet格式,这是一种简单的制表符分隔格式。请注意,他们已经有了丹麦语 WordNet。
那么您应该在 NLTK 中安装 WordNet 和 Open Multilingual Wordnet 语料库(如果您还没有这样做的话)。这将创建一个类似 ~/nltk_data/corpora/omw/
的目录,每个语言文件都有一个子目录。您需要通过为它创建一个目录并像这样命名您的文件来添加您的语料库:
~/nltk_data/corpora/omw/xxx/wn-data-xxx.tab
xxx
可以是任何东西,但它必须在两个地方相同。此文件名模式在 NLTK 中被硬编码 here .
之后,您可以通过将 xxx
指定为 lang
参数来使用您的 WordNet。这是一个例子 from the documentation :
>>> wn.synset('dog.n.01').lemma_names('ita') # change 'ita' to 'xxx'
['cane', 'Canis_familiaris']
您如何处理给定库不支持的语言的自然语言处理?
我经常用日语这样做。
有些技术会查看您的标记内部 - 也就是说,它们会检查一个词是否字面意思是“说”或"is"之类的。这在词干分析器中很常见,并且词形还原器出于显而易见的原因。一些系统使用基于假设的规则关于词性如何在给定语言(通常是英语)中相互作用。你可能能够将这些期望翻译成您的语言,但通常你只是不能使用这些。
但是,许多有用的技术根本不会查看您的 token 内部 - 它们只关心两个标记是否相等。这些通常主要依赖标签或搭配数据等特征。您可能需要预先标记您的数据,你可能想在维基百科上训练一个通用语言模型语言,仅此而已。词向量、NER、文档相似度都是例子缺乏语言支持的问题通常不是问题。
还说您想在 spaCy 这样的库中使用英语或荷兰语以外的语言进行命名实体识别。有什么办法可以做到这一点?
SpaCy 提供了一种方法 custom labelling对于神经网络。将它与否则不受支持的语言没有记录并且会有点棘手。然而,由于您不需要 NER 的完整语言模型,您可以使用 NER带有标记示例的特定工具。
下面是一些示例训练数据 CRF++基于 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 是一个 Python wrapper .
对于这类数据,算法并不真正关心第一列中的内容,因此语言支持不是问题。
希望对您有所帮助!
关于python - 是否可以将您自己的 WordNet 添加到图书馆中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42422593/
我正在尝试为 WOLF(Wordnet Libre du Français,免费法语 Wordnet)创建一个界面。目标是为阿拉伯语 Wordnet (http://www.talp.upc.edu/
我正在尝试将 Wordnet 3.0 同义词集映射到 Wordnet 3.1例如:purl.org/vocabularies/princeton/wn30/synset-embrace-verb-2
虽然我拥有 EE 背景,但我没有机会参加自然语言处理类(class)。 我想为土耳其语构建情感分析工具。我认为最好创建一个土耳其语 wordnet 数据库,而不是将文本翻译成英语,然后使用提供的工具用
我对 WordNet 数据文件格式有疑问。 wndb(5) 手册页部分内容如下: The source/target field distinguishes lexical and semantic
一些相似度得分介于 0 和 1 之间,例如最短路径和 WuP。因此汽车与汽车之间的相似度将为 1,但 LCh 等其他度量将为 lch( car, automobile ) = 3.6889 我想知道这
是否有可用于 wordnet 3.0 同义词集到其他本体的映射,如 Cyc , YAGO和 EuroWordNet喜欢SUMO ? 最佳答案 Yago 是 linked to Wordnet , 以及
我正在尝试在 OSX 10.8 的 Mac 上安装 Wordnet 3.0。 我已经配置好了,但是当我尝试 make 时, 我收到一堆错误... ..... /usr/include/tkDecls.
想了解WordNet的文件格式,主要文档是WNDB和 WNINPUT .正如我在 WNDB 中所了解的,有名为 index.something 的文件和 data.something ,这里somet
如何使用 wordnet 按单词类别标记文本(java 作为接口(interface))? 示例 考虑以下句子: 1) 计算机需要键盘、显示器、CPU 才能工作。 2)汽车使用齿轮和离合器。 现在我的
我在java中使用wordnet,使用一些已知的api(JAWS、JWNL)。我想使用相同类型的 API 在 Wordnet Affect (WNA) 中进行搜索,但 Internet 上没有关于 W
我正在使用 WordNet 2.1 工具 并通过 JAWSpro-grammatically 访问它(Java用于 WordNet 搜索的 API)。 今天我遇到了一个名为 WordNet 域 的新事
我一直在分析 WordNet 3.0 MySql 数据库文件,我从以下位置下载了这些文件: http://www.princeton.edu/wordnet/download/current-vers
我正在尝试用 python 编写一个程序,它将记录我输入的段落。它将对该段落的第一句和最后一句以及带有日期和数字的句子进行排序。然后它会用同义词替换一些单词,并去掉无用的形容词。我知道 python
因此,我第一次尝试使用 wordnet 为我正在开发的基于小型文本的冒险游戏项目构建文本识别脚本。现在,我有这段代码来尝试构建一个对象,该对象由每个单词作为键以及该单词的每个同义词作为附加到该键的数组
我正在尝试编写一个程序来查找两个文档之间的相似性,并且由于我只使用英语,所以我决定使用 wordnet,但是我找不到将 wordnet 与 php 链接的方法,我找不到任何 wordnet api P
我用了rita使用 Java 框架 WordNet .它工作正常,但我如何在 android 中使用它?是否有任何框架/API 可以从 android 访问 WordNet? JAWS 要求安装 Wo
我一直在寻找一些 Java 库,它可以提供有关同义词集“频率计数”的信息。我检查了 JWNL 和 JWI,他们不提供此类信息。有人知道其他 Java WordNet API 吗? 最佳答案 我相信这也
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一个项目,我需要获得一个单词的词汇含义。我正在考虑使用 WordNet,因为它有自己的词典编纂者类,也称为超感官。我刚刚下载了 MIT JWI 并试图查看这个 JWI 是否支持它。该手册没有说明返
假设我有两个句子中每对单词的单词相似度分数,根据这些分数确定整体句子相似度的合适方法是什么? 单词分数是使用代表每个单词的向量的余弦相似度计算的。 既然我有了单词得分,那么把单词得分加起来除以两个句子
我是一名优秀的程序员,十分优秀!