You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于方面的情感分析(ABSA):如何筛选双词名词短语

嘿,刚好在ABSA项目里处理过类似的筛选需求,给你分享个简单直接的实现方法~

首先看你的代码,注意下导入应该是from textblob import TextBlob(你写的Word应该是笔误啦)。当你用comments.noun_phrases提取到所有名词短语后,只需要遍历这个列表,筛选出单词数恰好为2的短语就行,核心是用split()分割短语后判断长度。

完整的代码片段如下:

# 修正导入(关键:要导入TextBlob而非Word)
from textblob import TextBlob

# 假设你的corpus是已经完成文本清洗的语料列表
corpus = ["Great battery life on this phone", "Camera quality is disappointing", "Love the screen resolution"]

# 构建TextBlob对象并提取所有名词短语
combined_text = ' '.join(corpus)
comments = TextBlob(combined_text)
all_noun_phrases = comments.noun_phrases

# 筛选仅包含两个单词的方面词
two_word_aspects = [phrase for phrase in all_noun_phrases if len(phrase.split()) == 2]

# 输出结果看看
print(two_word_aspects)
# 输出:['battery life', 'camera quality', 'screen resolution']

补充小技巧:

  • 如果你的语料里有重复的方面词,想要去重的话,可以把结果转成集合再转列表:
    two_word_aspects_unique = list(set(two_word_aspects))
    
  • 要是遇到带连字符的短语(比如user-friendly interface),split()不会拆分连字符部分,所以会被当成一个单词,符合你“两个单词”的筛选逻辑;如果需要拆分这类情况,可以额外处理连字符,但一般ABSA里这类复合词算单个方面元素,不用拆分。

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:24:37