Nlp 如何使用spacy或nltk检索句子的主要意图?
我有一个用例,我想使用spacy或nltk或任何NLP库提取句子的主要有意义部分。 例句1:我如何提高嗓门反对骚扰 目的是:“提高声音反对骚扰” 例句2:“唐老鸭是由哪个漫画家/哪个人/谁创作的?” 意图是:唐老鸭是由 例句3:如何使用spacy或nltk检索句子的主要意图? 意图:“使用spacy nltk检索句子的主要意图” 我不熟悉依赖项解析,不知道该怎么做。请帮帮我。TL;博士 您必须定义您想要执行的最终任务,并定义什么是“意图”/“主要信息”或“文本含义” 长期 乍一看,你似乎在要求神奇地解决一个自然语言问题。但是让我们看看这个问题和你真正想问的,让我们暂时避免所有的意图/标签或语言的概念,只看看输入/输出是什么:Nlp 如何使用spacy或nltk检索句子的主要意图?,nlp,nltk,spacy,pos-tagger,dependency-parsing,Nlp,Nltk,Spacy,Pos Tagger,Dependency Parsing,我有一个用例,我想使用spacy或nltk或任何NLP库提取句子的主要有意义部分。 例句1:我如何提高嗓门反对骚扰 目的是:“提高声音反对骚扰” 例句2:“唐老鸭是由哪个漫画家/哪个人/谁创作的?” 意图是:唐老鸭是由 例句3:如何使用spacy或nltk检索句子的主要意图? 意图:“使用spacy nltk检索句子的主要意图” 我不熟悉依赖项解析,不知道该怎么做。请帮帮我。TL;博士 您必须定义您想要执行的最终任务,并定义什么是“意图”/“主要信息”或“文本含义” 长期 乍一看,你似乎在要求神
[in]: "How Can I raise my voice against harassment"
[out]: "raise voice against harassment"
[in]: "Donald Duck is created by which cartoonist/which man/whom ?"
[out]: "Donald duck is created by"
[in]: "How to retrieve the main intent of a sentence using spacy or nltk ?"
[out]: "retrieve main intent of sentence using spacy nltk"
似乎所有输出标记/单词都只是输入的一个引用,在这种情况下,如果您只是将问题视为“span/sequence annotation”任务,即
[in]: "How Can I raise my voice against harassment"
[out]: [0, 0, 0, 1, 0, 1, 1, 1]
[in]: "Donald Duck is created by which cartoonist/which man/whom ?"
[out]: [1, 1, 1, 1, 0, 0, 0]
[in]: "How to retrieve the main intent of a sentence using spacy or nltk ?"
[out]: [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
假设每个单词都是一个二进制标签,那么对于要从输入中提取的单词,输出应该标记为1
,对于不想提取的单词,输出应该标记为0
现在,鉴于这是一项简单的二进制序列标记任务,我们可以简单地执行以下操作:
- 意图总是输入的一部分,这是真的吗李>
- 究竟什么是意图?它是如何定义的李>
- 如果输入中没有意图,会发生什么李>
- 这句话的确切意思是什么,它只是提取“重要的词语”吗?如果是的话,“重要”一词是什么?“重要”是如何定义的李>
- 只有不停的话不重要吗?如果是,那么您可以简单地删除stopwords,例如。还有,什么是停止语李>
(依赖、关系、头部)
,例如酒店
是从三元组('hotel','PLACE','find')
到查找的地方
注意:这仅仅是“语义”或“意图”的概念,没有错误,但定义良好,因此执行此任务的模型可以在有监督的机器学习范式中训练。详情请参阅
根据您定义为意图/语义的方式和内容,输入/输出将发生变化,要训练的模型可能不同
但是你为什么要把它弄得这么复杂,我只想要意图字符串?!
因为如果只是一个字符串,“主要意思”或“意图”是什么意思
我们回到了缺乏定义的问题上,这使得这项任务是一项神奇的任务,而不是计算机可以执行的任务。我们不清楚您的意图是什么。在行业中,意图与描述相同意图的多个短语相关联。在这里,您似乎想提取一个名词短语。这个问题没有明确说明。对相当复杂的主题的描述非常好(简短)。对于一个句子的最小“意图”,您可以使用主语-动词-宾语模型探索依赖项解析。它很快也很脏,但在类似文档的语料库中效果相当好(很大程度上取决于文档所代表的语言类型)。
TRAIN_DATA = [
(
"find a cafe with great wifi",
{
"heads": [0, 2, 0, 5, 5, 2], # index of token head
"deps": ["ROOT", "-", "PLACE", "-", "QUALITY", "ATTRIBUTE"],
},
),
(
"find a hotel near the beach",
{
"heads": [0, 2, 0, 5, 5, 2],
"deps": ["ROOT", "-", "PLACE", "QUALITY", "-", "ATTRIBUTE"],
},
),
[in]: find a hotel with good wifi
[out]:
[
('find', 'ROOT', 'find'),
('hotel', 'PLACE', 'find'),
('good', 'QUALITY', 'wifi'),
('wifi', 'ATTRIBUTE', 'hotel')
]