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

基于句子位置加权的抽取式文本摘要:核心关键词提取技术问询

嘿,针对你要做抽取式文本摘要生成核心关键词的需求,结合你想给早出现词汇更高权重的思路,我整理了一套用Python+pandas实现的具体方案,应该能帮到你:

1. 先提取每个词汇的首次出现位置

首先得从你的句子DataFrame里,按顺序(索引0是首句)记录每个词汇第一次出现的句子位置。这样才能区分“早出现”和“晚出现”的词:

import pandas as pd

# 假设你的句子数据集叫sentences,其中存储文本的列名为'text'
first_occurrence = {}

# 按句子顺序遍历,索引就是句子的先后位置
for idx, row in sentences.iterrows():
    # 这里先做基础分词,英文可以直接split,中文建议用jieba等工具
    # 同时转小写避免大小写重复计数(英文场景)
    words_in_sentence = row['text'].lower().split()
    for word in words_in_sentence:
        # 只记录第一次出现的位置
        if word not in first_occurrence:
            first_occurrence[word] = idx

# 转成DataFrame方便后续合并
first_occurrence_df = pd.DataFrame.from_dict(
    first_occurrence, 
    orient='index', 
    columns=['first_pos']
).reset_index().rename(columns={'index': 'words'})
2. 合并词频与首次位置数据

把你现有的词频DataFrame(words)和刚生成的首次位置数据合并,让每个词都对应上出现次数和首次位置:

# 左连接确保保留所有词频数据里的词汇
merged_df = pd.merge(words, first_occurrence_df, on='words', how='left')

# 处理可能的缺失值(比如某些词在词频表里但没在句子中出现,给个靠后的默认位置)
max_sent_idx = sentences.index.max()
merged_df['first_pos'] = merged_df['first_pos'].fillna(max_sent_idx + 1)
3. 计算加权得分

核心逻辑来了:给早出现的词更高权重,然后结合出现次数算出最终得分。这里用**1/(首次位置+1)**作为权重(加1是避免除以0,首句位置0的词权重最高):

# 计算权重:位置越靠前,权重值越大
merged_df['weight'] = 1 / (merged_df['first_pos'] + 1)

# 加权得分 = 出现次数 × 权重
merged_df['weighted_score'] = merged_df['occurrences'] * merged_df['weight']
4. 筛选核心关键词

按加权得分降序排序,取前N个就是你要的核心关键词列表:

# 按得分从高到低排序
sorted_keywords = merged_df.sort_values(by='weighted_score', ascending=False)

# 比如取前10个核心关键词
top_keywords = sorted_keywords['words'].head(10).tolist()

print("核心关键词列表:", top_keywords)
一些优化小建议
  • 分词优化:如果是中文,一定要用专业分词工具(比如jieba),同时过滤停用词(比如“的、了、啊”这类无意义词汇);英文场景要去掉标点、停用词(比如nltk的stopwords库),避免无效词汇干扰。
  • 权重调整:如果觉得首次位置的权重影响太大,可以调整公式,比如用1/(first_pos ** 0.5 + 1),让权重衰减更平缓;或者给前3句的词额外乘1.5的权重,强化开头词汇的优先级。
  • 过滤无效词汇:你的词频表里有''、'11-1'这类特殊符号/数字组合,建议提前过滤掉长度小于2的词、纯数字/符号的词,提升关键词质量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:56