【问题标题】:I have a dataset on which I want to do Phrase extraction using NLP but I am unable to do so?我有一个数据集,我想使用 NLP 进行短语提取,但我无法这样做?
【发布时间】:2019-12-28 22:29:53
【问题描述】:

我如何使用一个数据集从一个句子中提取一个短语,该数据集有一些句子集和相应的标签,格式为

Sentence1:I want to play cricket 
Label1: play cricket

Sentence2: Need to wash my clothes
Label2: wash clothes

我曾尝试使用带有 nltk 的分块,但我无法将训练数据与块一起使用。

【问题讨论】:

  • 为什么您提供的标签是从给定句子中提取的“正确”短语? (最终目标或指导标准是什么?)
  • @gojomo 最终目标是从句子中提取提醒短语。例如:“请提醒我去健身房”-->“去健身房”

标签: machine-learning nlp artificial-intelligence nltk word2vec


【解决方案1】:

您描述的“提醒释义”并未完全映射到具有明确软件支持的其他类型的“短语”。

例如,gensim Phrases 模块使用纯统计方法来发现非常常见的相邻单词配对,相对于每个单词的基本比率,它们可能被视为一个组合单元。它可能会将某些实体变成短语(例如:“New York” -> “New_York”)或重复的成语(例如:“slacking off” -> “slacking_off”)。但它只是相邻的单词,而不是您正在寻找的那种上下文释义。

同样,具有适当语法意识以标记逻辑词性(和相互依赖)的库也倾向于简单地对文本中的现有短语进行分组和标记——而不是像你想要的那样创建简化的命令式摘要.

不过,此类库的输出可能会帮助您制定自己的经验法则。例如,到目前为止,它出现在您的示例中,您想要的“提醒释义”始终是一个动词和一个名词(该动词的宾语)。因此,在使用词性标记(如来自 NLTK 或 SpaCy)后,选择 last 动词(也许也更喜欢现在/命令式的动词)和 following名词短语(也许去掉了其他修饰语/介词)可以满足您的大部分需求。

当然,更复杂的示例需要更好的启发式方法。如果您需要处理的所有文本范围非常广泛,那么找到一种通用方法可能需要更多(成百上千)个正向训练示例:认为最好的释义是,给定某些文本。然后,您可以考虑一些机器学习方法,它们可能能够从较大的文本中选择正确的 ~2 个单词。

研究“释义”的已发表作品,而不仅仅是“短语提取”,也可能会引导您产生想法,但不幸的是,我不知道任何现成的释义库。

【讨论】:

  • 如何使用包含句子和释义提取的训练数据集来选择最佳语法。
  • “最佳语法”是什么意思?有足够的例子,某些模式会不会很明显,和/或例外/困难的情况?现在,您只展示了 3 个示例,对于这些示例,“取最后 2 或 3 个单词,但不要以 'to' 开头”的简单规则可以正常工作。 (词性标记甚至还不是一个需要的提示!)如果需要更复杂的分析,您需要更多示例,包括硬示例,以了解是否需要更复杂的分析。
  • 我有一个包含 10,000 个句子的数据集,并以 tsv 文件的形式提取相应的短语。我想制作一个模型,可以根据这些数据改进自己。
  • 我上面建议的简单规则——“取最后 2 或 3 个单词,但不要以 'to' 开头”——在 10,000 个示例中有多少有效?在它不起作用的那些中,它们是否可以与它起作用的那些完全区分开来,并且其他一些简单的规则是否有效?是否所有 10,000 个示例都只是按照原始顺序使用原始单词中的某些子集? (那么你的通用的、可学习的规则可能是这样的形式,“对于句子 S 和句子中的单词 W,W 应该在释义中吗?(是/否)”——一个二元分类问题。)
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多