"我们做的第一件事就是杀死所有的律师." - 威廉莎士比亚
鉴于上面的引用,我想拉出"kill"并"lawyers"作为两个突出的关键词来描述句子的整体含义.我提取了以下名词/动词POS标签:
[["First", "NNP"], ["thing", "NN"], ["do", "VBP"], ["lets", "NNS"], ["kill", "VB"], ["lawyers", "NNS"]]
Run Code Online (Sandbox Code Playgroud)
我试图解决的更普遍的问题是将句子提炼为"最重要的"*单词/标签,以概括句子的整体"含义"*.
*注意恐慌报价.我承认这是一个非常棘手的问题,目前很可能没有完美的解决方案.尽管如此,我有兴趣看到尝试解决特定问题(提取"kill"和"lawyers")和一般问题(总结关键字/标签中句子的整体含义)
一种简单的方法是保留NN、VB 等的停用词列表。这些是高频词,通常不会为句子添加太多语义内容。
下面的代码片段显示了每种类型的单词标记的不同列表,但您也可以为动词和名词使用单个停用词列表(例如这个)。
stop_words = dict(
NNP=['first', 'second'],
NN=['thing'],
VBP=['do','done'],
VB=[],
NNS=['lets', 'things'],
)
def filter_stop_words(pos_list):
return [[token, token_type]
for token, token_type in pos_list
if token.lower() not in stop_words[token_type]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12663 次 |
| 最近记录: |