问题标签 [opennlp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1995 浏览

java - OpenNLP 是否在引擎盖下使用 WordNet 进行命名实体识别

我尝试使用 SourceForge 的 OpenNLP Tools 1.5 从文本中获取命名实体。我确实在 OpenNLP 下载中找到了一个 JWNL 文件。这是否意味着 OpenNLP 反过来使用 WordNet 进行命名实体识别。(具体来说,这是否意味着名称模型文件是使用 WordNet 生成的)?

0 投票
3 回答
31486 浏览

java - 如何在 Java 中使用 OpenNLP?

我想 POSTag 一个英文句子并做一些处理。我想使用openNLP。我已经安装了

当我执行命令时

它在 Text.txt 中给出输出 POSTagging 输入

我希望它安装正确?

现在我如何从 Java 应用程序内部进行此 POSTtagging?我已将 openNLPtools、jwnl、maxent jar 添加到项目中,但如何调用 POSTtagging?

0 投票
1 回答
966 浏览

java - OpenNLP 头部规则

我正在尝试使用 openNLP 教程http://sourceforge.net/apps/mediawiki/opennlp/index.php?title=Parser#Training为新模型训练解析器。唯一的问题是需要一个 head_rules 文件。我似乎无法在任何地方找到有关生成此文件的任何信息,并且可以在此处找到指向 head_rules 文件的唯一链接:http://opennlp.sourceforge.net/models/english/parser/head_rules 我不能理解它。有谁知道如何从训练数据中生成这个?

0 投票
2 回答
195 浏览

python - How to recognise a particular user in a long multi-user internet chat log?

Here is an online programming contest we are planning to have.

What could be possible approaches to solving the same?

From a random IRC (Internet Relay Chat) log, a small percentage of the user nicknames will be randomly deleted. The participant’s code must be able to fill in the missing user nicks. In other words, this event requires you to come up with an intelligent program that can figure out “who could have said what”.

It may be assumed that all communication will be in modern English, with or without punctuation.

For example -

Original Chat: ... <user1>: Hey! <user2>: Hello! Where are you from, user1? <user3>: Can anybody help me out with Gnome installation? <user1>: India. user3, do you have the X Windows System installed? <user2>: Cool. What is Gnome, user3? <user3>: I don’t know. How do I check? <user3>: Its a desktop environment, user2. <user2>: Oh yeah! Just googled. <user1>: Type “startx” on the command line. Login as root and type “apt-get install gnome”. <user3>: Thanks! <user5>: I’m root, obey me! <user2>: Huh?! <user3>: user2, you better start using Linux! ...

The following only will be given to the participant.

Chat log with some nicks deleted:

..

: Hey! : Hello! Where are you from, user1? : Can anybody help me out with Gnome installation? : India. user3, do you have the X Windows System installed? : Cool. What is Gnome, user3? <%%%>: I don’t know. How do I check? <%%%>: Its a desktop environment, user2. : Oh yeah! Just googled. : Type “startx” on the command line. Login as root and type “apt-get install gnome”. : Thanks! <%%%>: I’m root, obey me! <%%%>: Huh?! : user2, you better start using Linux! ...

The participant’s code will have the task of replacing "<%%%>s" with the appropriate user nicks. In ambiguous cases, like the random comment by in the above example (which could have been said by any other user too!), the code should indicate the same.

0 投票
1 回答
397 浏览

mongodb - 从 MongoDB 中的文本字段生成 Unigram 列表的最有效方法

我需要生成一元向量,即出现在特定文本字段中的所有唯一单词的向量,我已将其存储为 MongoDB 中更广泛的 JSON 对象的一部分。

我不太确定生成这个向量的最简单和最有效的方法是什么。我正在考虑编写一个简单的 Java 应用程序来处理标记化(使用 OpenNLP 之类的东西),但是我认为更好的方法可能是尝试使用 Mongo 的 Map-Reduce 功能来解决这个问题......但是我不是真的确定我该怎么做。

另一种选择是使用 Apache Lucene 索引,但这意味着我仍然需要一个一个地导出这些数据。这与使用自定义 Java 或 Ruby 方法时遇到的问题完全相同......

Map reduce 听起来不错,但是随着更多文档的插入,Mongo 数据每天都在增长。这并不是一项真正的一次性任务,因为一直在添加新文档。更新非常罕见。每次我想更新我的 Unigram 矢量时,我真的不想在数百万个文档上运行 Map-Reduce,因为我担心这会非常低效地使用资源......

生成一元向量然后保持更新的最有效方法是什么?

谢谢!

0 投票
4 回答
702 浏览

nlp - 纯统计,还是自然语言处理引擎?

有哪些统计引擎可以产生比 OpenNLP 工具套件更好的结果(如果有的话)?我正在寻找的是一个从文本中挑选关键字并提供这些动词和名词的词干的引擎,也许自然语言处理不是这里的方法。该引擎还应该使用不同的语言。

0 投票
1 回答
352 浏览

nlp - Chunker 是否应该找到短语的开头?

我的应用程序要求我指出短语(名词或动词)的开头。我的葡萄牙语语料库中有这样的信息:

Me pron-pers *B-NP
pergunto v-fin B-VP
semper adv *B-ADVP quem
pron-indp *B-NP
podia v-fin B-VP
ter v-inf I-VP
sido v-pcp I-VP
aquele pron-det B-NP
jovem adj I-NP
alemãon *I-NP
. . ○

语法类似于 CONLL 2000,但 * 标记了短语的开头。我的问题是:Chunker 应该支持头部吗?您是否知道任何其他语料库来训练还包括头部的 Chunker,或者它是我的特殊性?

- 编辑 -

我尝试训练分类器并得到了很好的结果:F1 分数是 0.94,没有头标记,有 0.93。我认为没关系。问题是 OpenNLP chunker API 不支持这个标记,并且在创建 span 时会感到困惑。我更改了 OpenNLP 代码来处理它,我想知道它是否是一个好的补丁,但由于它不常见,我不应该发送补丁。

0 投票
1 回答
10023 浏览

java - 如何在 OpenNLP 中训练命名实体识别器标识符?

好的,我有以下代码来训练来自 OpenNLP 的 NER 标识符

我不知道我是否做错了什么,如果缺少某些东西,但分类不起作用。我假设 train.txt 是错误的。

发生的错误是所有令牌都被分类为仅一种类型。

我的 train.txt 数据类似于以下示例,但具有更多的变化和条目数量。另一件事是我每次从文本中逐字分类,而不是所有标记。

有人可以证明我做错了什么?

0 投票
4 回答
17717 浏览

lucene - 在提供 Lucene 索引时使用免费工具进行实体提取/识别

我目前正在研究从文本(网络上的很多文章)中提取人名、位置、技术词汇和类别的选项,然后将其输入到 Lucene/ElasticSearch 索引中。然后将附加信息添加为元数据,并应提高搜索的精度。

例如,当有人查询“wicket”时,他应该能够确定他是指板球运动还是 Apache 项目。到目前为止,我试图自己实现这一点,但取得了轻微的成功。现在我找到了很多工具,但我不确定它们是否适合这项任务,哪些与 Lucene 集成得很好,或者实体提取的精度是否足够高。

我的问题:

  • 有人对上面列出的一些工具及其精度/召回有经验吗?或者,如果需要 + 可用的训练数据。
  • 是否有文章或教程可以让我开始使用每个工具的实体提取 (NER)?
  • 它们如何与 Lucene 集成?

以下是与该主题相关的一些问题:

0 投票
4 回答
4037 浏览

nlp - 使用 NLP 压缩句子

使用机器翻译,我可以获得一个非常压缩的句子版本,例如。我真的很想喝一杯美味可口的咖啡会被翻译成我想要咖啡 是否有任何 NLP 引擎提供这样的功能?

我得到了一些研究论文,这些论文进行了副相生成句子压缩。但是有没有任何图书馆已经实现了这一点?