Nlp 把复合句分成简单句
我正在寻找一个分句器,可以分裂成简单的句子复合句 例如:Nlp 把复合句分成简单句,nlp,chatbot,Nlp,Chatbot,我正在寻找一个分句器,可以分裂成简单的句子复合句 例如: Input: Andrea is beautiful but she is strict. (expected) Output: Andrea is beautiful. she is strict. Input: i am andrea and i work for google. (expected) Output: i am andrea. i work for google. Input: Italy is my favor
Input: Andrea is beautiful but she is strict.
(expected) Output: Andrea is beautiful. she is strict.
Input: i am andrea and i work for google.
(expected) Output: i am andrea. i work for google.
Input: Italy is my favorite country; i plan to spend two weeks there next year.
(expected) Output: Italy is my favorite country. i plan to spend two weeks there next year.
有什么建议吗?我尝试了NLTK、spacy、segtok、nlp折衷方案,但它们无法处理这些复杂的示例(我理解这是一个难题,因此没有简单的解决方案)。首先,你需要从语言(语法)角度更好地定义“简单句子”对你意味着什么。例如,你可以说简单的句子是:
-
只是中间没有标点符号的文字(句号、逗号、冒号等)
- 只有一个动词的。在这种情况下,您将处理通过重用另一个句子来“完成”句子的层次结构
- 类似于文本的短语,其中连词也可以用作分隔符
Spacy输出这些树和树。 您可能会注意到,使用
conj
作为分隔符并合并其余子树,它将返回您期望的输出。
正如我前面提到的,在按标点符号分割后,您可以对输入3执行相同的操作
最后,这不是一项简单的任务,您可能对这些简单的规则没有意见,但如果您需要更好的结果,请首先改进关于“复合”或“简单”句子含义的定义,并查看使用机器学习的更复杂算法
虽然这是一个非常古老的问题,但如果知道这是否有帮助,那就太好了:)我想,这不是一个简单的标记化任务,您应该尝试依赖语法解析器(如SyntaxNet)这将确定复合句中的简单句在哪里,以及哪些单词将它们连接起来。然后你可以用点替换这个单词。你能提供更多关于你已经尝试过的内容的详细信息吗?请在中搜索“解释”一词。