gpt4 book ai didi

nlp - 将复合句拆分成简单句

转载 作者:行者123 更新时间:2023-12-03 17:37:43 30 4
gpt4 key购买 nike

我正在寻找一个可以将复合句拆分成简单句的句子分割器。

例子:

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-compromise,但它们不适用于这些复杂的示例(我知道这是一个难题,因此没有简单的解决方案)。

最佳答案

首先,您需要从语言(语法)的角度更好地定义“简单句子”对您的意义。例如,你可以说这个简单的句子是:

  • 只是中间没有标点符号的文本(句号、逗号、冒号等)
  • 那些只有一个动词的人。在这种情况下,您将通过重用另一个句子来处理一个句子“完成”的层次结构。
  • 类似短语的文本,其中连词也可以充当分隔符。

  • 简而言之,您有很多选择来定义它,并且根据您的需要,您的“规则”应该更加(或不那么)严格,因为它会影响您的算法设计和(当然)您的输出。
    我建议你 2 个基本说明
  • 用标点符号分割,所以你会有“更简单的句子”(例如你的 input3)
  • 将它们中的每一个输入到依赖项解析器(例如 Spacy),并利用依赖项链接作为分隔符。

  • 使用您提供的示例进行演示:
    Spacy 输出这些树 input1input2 .
    您可能会注意到使用 conj作为分隔符并合并剩余的子树,它返回您期望的输出。
    如上所述,您可以在按标点符号拆分后对 input3 执行相同操作。
    最后,这不是一项简单的任务,您可能会接受这些简单的规则,但是如果您需要更好的结果,请首先改进您对“复合”或“简单”句子含义的定义,并使用更复杂的算法查看机器学习。
    虽然这是一个非常古老的问题,但很高兴知道这是否有帮助:)

    关于nlp - 将复合句拆分成简单句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626264/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com