java - 使用 OpenNLP 进行句子检测

标签 java nlp nltk tokenize opennlp

我正在尝试 OpenNLP 句子检测工具。文本位于文件 - para3.txt 中。内容:

Bob went to London Mary came from Paris Now everything is fine.

我使用以下命令运行它:

opennlp SentenceDetector ../models/en-sent.bin < para3.txt

我得到这样的输出:

Bob went to London Mary came from Paris Now everything is fine.

理想情况下,我会看到三个句子作为输出:

Bob went to London.
Mary came from Paris.
Now everything is fine.

现在,如果我尝试其他存在“句号”或“句号”的句子,则句子检测进展顺利。人类会猜到文本中有 3 个句子,但是 OpenNLP 如何完成呢? NLP 的哪些工具可以在这里提供帮助???句子检测的下一个级别是什么?

最佳答案

您应该训练您的模型来检测这些类型的句子,即文档中给出的句子检测器训练。 创建您的培训文件 en-sent.train :示例训练数据文件。唯一的要求是每个句子应该在训练文件中单独一行,如下所示。

句子 1

句子2

第3句

……

……

然后使用命令行界面:

opennlp SentenceDetectorTrainer -model en-sent_trained.bin -lang en -data en-sent.train -encoding UTF-8

这将给出一个模型文件:en-sent_trained.bin

现在使用此 .bin 文件而不是 en-sent.bin

希望这有帮助!

关于java - 使用 OpenNLP 进行句子检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516363/

相关文章:

nlp - 训练集-肯定句/否定句/中性句的比例

java - Java中将素数从一个数组复制到另一个数组的方法

python - SpaCy 如何在标记化过程中跟踪字符和标记偏移量?

java - 是否可以检索 GATE 中命名 AnnotationSet 的完整列表?

python - AttributeError : 'list' object has no attribute 'isdigit' . 有效指定句子列表中每个单词的 POS?

python - 识别python中的动词时态

java - Android 媒体播放器在暂停后无法启动

java - 在 Java 或其他 OO/非函数式语言中表示复杂真值表的最佳方式是什么?

java - 添加到 BorderLayout 的 JTextArea 不可见

nlp - 短文本分类