OpenNLP语句检测器不';我不认识整个句子

OpenNLP语句检测器不';我不认识整个句子,nlp,detection,opennlp,sentence,Nlp,Detection,Opennlp,Sentence,我正在做一个研究项目,我需要一个NLP程序来检测不同情况下的句子。有人建议我使用OpenNLP,我在阅读了OpenNLP的wiki页面后确信我会使用它。因此,我使用OpenNLP来检测句子以及任何不属于句子的单词或短语(也称为句子片段) 如果要重定向输入,OpenNLP接受.txt文件作为输入。如果要使用.doc文件作为输入,必须将其转换为.txt文件。我的问题就从这里开始 我有许多不同格式的文件。我想检测每个文件中的句子,如果它们包含任何文本。因此,我开始将每个可能包含文本的文件转换为.txt

我正在做一个研究项目,我需要一个NLP程序来检测不同情况下的句子。有人建议我使用OpenNLP,我在阅读了OpenNLP的wiki页面后确信我会使用它。因此,我使用OpenNLP来检测句子以及任何不属于句子的单词或短语(也称为句子片段)

如果要重定向输入,OpenNLP接受.txt文件作为输入。如果要使用.doc文件作为输入,必须将其转换为.txt文件。我的问题就从这里开始

我有许多不同格式的文件。我想检测每个文件中的句子,如果它们包含任何文本。因此,我开始将每个可能包含文本的文件转换为.txt文件。转换过程并不完美。例如,如果一个句子太长(比如说比一行长),那么转换工具会将句子的两行作为分隔的句子。由于第一行末尾的eoln字符,OpenNLP将每一行生成为不同的句子


我的问题是,我是否可以参数化或配置OpenNLP来识别整个句子(第一行和第二行在一起)?

尝试用CoreNLP:nlp.stanford.edu:8080/CoreNLP/process替换新的行,我建议您使用apache Tika来转换不同的文件。
Apache Tika有一个AutoDetectParser,它可以检测不同的文件类型并提取其中的数据(如果需要,甚至可以提取元数据),您可以将其保存到一个.txt文件中。

为什么不删除多余的新行?嗯,这不会有帮助,因为在某些情况下删除多余的新行字符会导致问题。例如,如果有一个包含两个单词的句子片段,其中第一个单词在第x行以大写字母开头,第x+1行有另一个以句点结尾的句子片段。如果在doc-to-txt转换后删除换行符,OpneNLP将同时识别这两行,并作为整个句子进行报告。我认为在转换过程中需要保持文字环绕,但我不知道如何才能做到。你能举个例子吗?你是否使用tika进行文本提取?我用过它,但没有产生你所描述的问题。另外,看看openNLP中的SentenceDetectorFactory类,它允许您指定分隔符的char[],在其中,您可以删除新行作为有效分隔符。这意味着您正在训练模型。@markg我使用catdoc,但我会试试tika。至于SentenceDetector中使用的分隔符,我认为确定何时删除哪一个换行符并不容易。这似乎和句子边界问题一样难。