Python实现中英文混合提取文章关键字

2024-04-01 17:13 Python实现中英文混合提取文章关键字已关闭评论

要实现中英文混合文本的关键词提取,可以采用对中英文分别处理的方式。下面是一个使用jieba处理中文和sklearn处理英文的混合实现示例:

import re
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from collections import Counter

# 定义中英文分词函数
def mixed_segmentation(text):
    # 先将文本按空格分割,以处理英文部分
    words = text.split()
    # 对于每个可能的英文单词,如果它不是英文,则尝试用jieba分词
    words = [word if re.match(r'^[A-Za-z]+$', word) else ' '.join(jieba.cut(word)) for word in words]
    # 合并分词结果
    segmented_text = ' '.join(words)
    return segmented_text

def extract_keywords(text, top_n=10):
    # 中英文混合分词
    segmented_text = mixed_segmentation(text)

    # 使用TF-IDF算法计算词频-逆文档频率
    vectorizer = TfidfVectorizer(stop_words='english', ngram_range=(1, 2))
    tfidf_matrix = vectorizer.fit_transform([segmented_text])

    # 获取每个词语(包括单个单词和二元词组)的TF-IDF值
    word_scores = zip(vectorizer.get_feature_names_out(), tfidf_matrix.toarray()[0])

    # 根据TF-IDF值对词语排序
    sorted_word_scores = sorted(word_scores, key=lambda x: x[1], reverse=True)

    # 提取前top_n个最高得分的词语作为关键词
    top_keywords = [word for word, score in sorted_word_scores[:top_n]]

    return top_keywords

# 示例用法:
mixed_article_text = "Your 中英文混合 article text goes here..."
keywords = extract_keywords(mixed_article_text)
print("Top keywords:", keywords)

在这个示例中,我们定义了一个mixed_segmentation函数,它首先按照空格将文本分割成可能的英文单词。对于每个可能的英文单词,我们检查它是否全为英文字母,如果是,则保留原样;如果不是,则使用jieba.cut进行中文分词,并将结果合并成一个字符串。这样处理后,得到的segmented_text包含了经过中英文混合分词的文本。

接下来,我们在extract_keywords函数中使用TfidfVectorizer处理这个分词后的文本。这里我们设置ngram_range=(1, 2)来同时考虑单词和二元词组。其他步骤与之前处理纯英文文本的示例相同。

需要注意的是,这种方法假设文本中的英文部分已经正确分隔(即英文单词间有空格)。如果实际文本中英文单词间无空格或者存在其他特殊情况,可能需要进一步完善分词逻辑。此外,尽管jieba能够很好地处理大部分中文分词任务,但在处理一些专业术语或特定领域词汇时,可能需要额外添加自定义词典以提升分词准确性。

总之,上述代码提供了一个基础的中英文混合文本关键词提取框架,您可以根据实际需求进一步优化分词策略、停用词列表、TF-IDF参数等,以适应不同的应用场景。

当前文章价值0.98元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/3203.html ,谢谢支持!

资源分享

分类:python 标签:, ,
Android常用基本控件 Android常用基本控件
什么是避孕? 什么是避孕?
Android应用微信登录功能实现 Android应用微信登录功能实现
解决Android SDK无法下载或下载慢相关问题 解决Android SDK无法下载或下

评论已关闭!