问题标签 [text-chunking]

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 投票
0 回答
72 浏览

java - opennlp chunker trainer 评估器

我使用了 Opennlp 文档中指定的训练集

https://opennlp.apache.org/documentation/1.5.2-incubating/manual/opennlp.html#tools.chunker.training

训练我的 Chunker bin 文件。但是,当我使用 ChunkerEvaluator 进行交叉验证时,它总是将精度和召回率设为 0,将 fmeasure 设为 -1.0

有人可以提出可能发生这种情况的原因吗?我尝试了许多不同的训练集,有 10 个句子,然后是 1000 个,但没有一个给出不同的结果。

0 投票
1 回答
515 浏览

regex - 在 NLTK 中分块冒号

我试图在冒号的位置拆分一个块:在 NLTK 中,但它似乎是一个特例。在正常的正则表达式中,我可以把它放在[:]没有问题的地方。

但是在 NLTK 中,无论我在 regexParser 中做什么,它都不喜欢它。

上面的代码确实使一个块将冒号作为一个块。<.*>}{<\VBD.*> 行在 let 之前的位置拆分由 (Rapunzel+:+let) 组成的块。如果您取出该拆分并用冒号替换,则会出现错误

ValueError:非法块模式:>

谁能解释如何做到这一点,我尝试了谷歌并浏览了文档,但我并不聪明。我可以处理这个帖子块没问题,但我只是知道为什么或如何。:-)

0 投票
2 回答
927 浏览

python - NLTK 块解析器:如何转义特殊字符

所以我试图从文本中提取一些信息,我正在使用 NLTK 分块。

这是我的输入

The stocks show 67% rise, last year it was 12% fall

我想捕捉

67% rise12% fall

POS Tagging 上面这句话显示

现在,我想出了一个简单的规则

Stat: {<CD><NN>(<NN>+|<VBN>|JJ)?}

效果很好并且可以捕获

但在我的数据集中,我有类似的东西

5 million dollars

这是

('5', 'CD'), ('man', 'NN'), ('stock', 'NN')

并且也被错误地捕获。所以我想%在我的规则中加入标志

Stat: {<CD><%>(<NN>+|<VBN>|JJ)?}

但这条规则现在不匹配任何东西。我如何%在我的块规则中转义/包含?

更新

所以,我不明白的是我可以匹配其他特殊字符。例如,如果我有一个规则

XYZ:{<:>}

这匹配:输入中的所有 s。所以我要做的就是

XYZ:{<%>}

这不起作用。我试图%逃避

XYZ:{<\%>}

但这也不起作用。我试过\\但无济于事。我真的不想修改输入字符串,因为一旦我匹配,我想找出匹配字符串的索引。因此,如果我修改输入字符串,除非我先进行反向转换,否则我的索引将被抛出

0 投票
1 回答
373 浏览

python - NLTK:如何访问分块字符串

我正在使用 NLTK 分块,我想捕获与我的规则匹配的字符串。例如

这是我的输入

The stocks show 67% rise, last year it was 12% fall

我想捕捉

67% rise12% fall

POS Tagging 上面这句话显示

现在,我想出了一个简单的规则

Stat: {<CD><NN>(<NN>+|<VBN>|JJ)?}

效果很好并且可以捕获

现在,我想提取捕获的确切字符串。所以,我想要

67% rise12% fall

我试过

但我明白了

67 % rise12 % fall

注意%数字之间的空格。这在逻辑上是正确的,但不是所需的输出。我想要确切的字符串,因为我想知道捕获的字符串的开始和结束索引。

我怎样才能做到这一点?

0 投票
3 回答
1184 浏览

parsing - NLTK 正则表达式解析器中的非条件

我需要在 NLTK 的正则表达式解析器中创建一个非条件作为我的语法的一部分。我想将那些具有结构的单词分块,'Coffee & Tea'但如果<IN>在序列之前有一个类型的单词,它不应该分块。例如'in London and Paris'不应该被解析器分块。

我的代码如下:

我尝试了上述语法来解决问题,但它不起作用,有人可以告诉我我做错了什么。

例子:

从句子 1 和句子 2 中都可以看出,短语Coffee & TeaLondon and Paris被分块为一个组,尽管我不想分块London and Paris。一种方法是忽略那些前面带有<IN>POS 标签的模式。

简而言之,我需要知道如何在正则表达式解析器的语法中为 POS 标签添加 NOT(否定)条件。使用 '^' 后跟标签定义的标准语法似乎不起作用

0 投票
1 回答
858 浏览

java - 如何使用消息摘要类的更新方法

我正在做一个数据加密项目,只是想问一下如何使用消息摘要类的方法更新。在 MD5 实现的代码片段中,这是这样写的。

我对这条线感到困惑

这三个参数的用途是什么?以及如何仅对某个数字进行哈希处理,例如 192 个字节的数据。

0 投票
1 回答
1005 浏览

python - NLTK Regex Chunker 不在一个命令中处理多个语法规则

我正在尝试从我的语料库中提取短语为此我定义了两个规则,一个是名词后跟多个名词,另一个是形容词后跟名词,在这里我希望如果从两个规则中提取相同的短语,程序应该忽略第二个,我面临的问题是短语仅从第一条规则中提取,而第二条规则没有被应用。下面是代码:

0 投票
2 回答
1999 浏览

python - 在名词短语列表中解析 NLTK 树输出

我有一句话

我在它上面应用了 NLTK 分块并得到一棵树作为输出。

输出如下:

如何获得字符串列表格式的名词短语:

请给一些建议......?

0 投票
0 回答
167 浏览

python - 通过python将长文本拆分为较小的样本

我已经尝试了https://de.dariah.eu/tatom/preprocessing.html中的示例代码,将 58 个文本文件分块成单独的 n 个分块文本文件。代码如下。但最后我在输出目录中得到一个 .txt0001 而不是分块文件。有人可以告诉我我在哪里做错了吗?

0 投票
3 回答
15274 浏览

python-3.x - Python (NLTK) - 提取名词短语的更有效方法?

我有一个涉及大量文本数据的机器学习任务。我想在训练文本中识别和提取名词短语,以便稍后在管道中将它们用于特征构建。我已经从文本中提取了我想要的名词短语类型,但我对 NLTK 还很陌生,所以我以一种可以分解列表推导中的每个步骤的方式来解决这个问题,如下所示。

但我真正的问题是,我是否在这里重新发明轮子?有没有我看不到的更快的方法来做到这一点?

将我们最终得到的元组列表的列表展平为一个元组列表的列表

将提取的术语加入一个二元组