我想知道是否有任何有效的方法可以从给定的句子中提取预期的目标短语或关键短语。到目前为止,我标记了给定的句子并为每个单词获取POS标签。现在,我不确定如何从给定的句子中提取目标关键短语或关键字。对我而言,这样做的方式并不直观。
这是我输入的句子列表:
sentence_List= {"Obviously one of the most important features of any computer is the human interface.", "Good for everyday computing and web browsing.",
"My problem was with DELL Customer Service", "I play a lot of casual games online[comma] and the touchpad is very responsive"}
这是标记化的句子:
from nltk.tokenize import word_tokenize
tokenized_sents = [word_tokenize(i) for i in sentence_List]
tokenized=[i for i in tokenized_sents]
这里我用Spacy
来获取单词的POS标签:
import spacy
nlp = spacy.load('en_core_web_sm')
res=[]
for i in range(len(sentence_list.index)):
for token in i:
res.append(token.pos_)
因此,我可以使用NER
中的spacy
(也称为名称实体关系),但是它的输出与我预定义的预期目标短语不同。有谁知道如何使用python中的Spacy
或stanfordcorenlp
模块来完成此任务?有什么有效的方法可以实现这一目标?任何想法?在此先感谢:)
所需的输出:
我想从各个句子列表中获取目标短语列表,如下所示:
target_phraseList={"human interface","everyday computing","DELL Customer Service","touchpad"}
所以我将输入sentence_list
与期望的目标短语连接起来,最终的期望输出将是这样的:
import pandas as pd
df=pd.Series(sentence_List, target_phraseList)
df=pd.DataFrame(df)
如何使用spacy
从给定的输入句子列表中获得期望的目标短语?有想法吗?
答案 0 :(得分:0)
您可以通过Phrase Matcher使用spacy进行此操作。
from spacy.matcher import PhraseMatcher
matcher = PhraseMatcher(nlp.vocab)
matcher.add('DELL', None, nlp(u"DELL Customer Service"))
doc = nlp(u"My problem was with DELL Customer Service")
matches = matcher(doc)