c语言编程笔录

首页 >   > 笔记大全

笔记大全

python用jieba分词 分词Python

更新时间:2023-10-20

什么是分词?

在自然语言处理中,分词是指将一段自然语言文本按照一定的规则划分成词语序列的过程。而这个过程其实就是将连续的字序列按照正确的词语划分标准进行分隔和组合的过程。

在这个过程中,除了字典匹配外,一些特定的场景,如歧义消解、新词发现、专有名词的识别等通常也需要涉及到其他的技术。

import jieba

words = jieba.cut("今天天气真好")
for word in words:
    print(word)

jieba分词的主要特点

jieba分词是一种纯Python精细中文分词组件,它具有以下特点:

  • 支持三种分词模式:精确模式、全模式和搜索模式。
  • 支持用户自定义词典。
  • 中文分词算法比较准确。
  • 可以用于处理简体中文、繁体中文、英文、数字和符号。

# 精确模式
import jieba

sentence = "我爱北京天安门"
words = jieba.cut(sentence, cut_all=False)
print(','.join(words))

# 全模式
words = jieba.cut(sentence, cut_all=True)
print(','.join(words))

# 搜索模式
words = jieba.cut_for_search(sentence)
print(','.join(words))

如何使用jieba分词进行情感分析?

情感分析是将某个文本内容划分为积极或消极的情感,jieba分词可以用于情感分析。常用的方法是通过构建情感词典,来对文本进行划分,jieba分词在此场景下的应用可以通过以下示例代码演示。

import jieba

pos = open('positive.txt', 'r', encoding='utf-8').read()
neg = open('negative.txt', 'r', encoding='utf-8').read()

jieba.add_word('其它', freq=20000)
jieba.add_word('净值', freq=30000)


def emotion_calculator(text):
    seg_list = jieba.cut(text)

    pos_word_list, neg_word_list = [], []
    for word in seg_list:
        if word in pos:
            pos_word_list.append(word)

        if word in neg:
            neg_word_list.append(word)

    print(f"正向词汇:{pos_word_list}, 负向词汇:{neg_word_list}")


emotion_calculator('这个基金的净值下降,不过还好别的产品没有大的波动。')


jieba分词的应用场景

除了情感分析以外,jieba分词也可以应用于以下场景:

  • 中文信息处理的大部分任务,如信息检索、语义分析等。它可以帮助程序进行文本分类、文本聚类、关键词提取、实体识别等操作。
  • 数据挖掘领域中的文本挖掘。jieba分词是文本处理过程中的必备步骤,可以通过它将文本数据转化成可以进行进一步挖掘的格式。

import jieba.analyse

text = "一段待提取的文本"

#提取关键词
keywords = jieba.analyse.extract_tags(text, topK=10, withWeight=True, allowPOS=('n', 'nr', 'ns'))
print(keywords)

#提取关键短语
phrases = jieba.analyse.textrank(text, topK=10, withWeight=True)
print(phrases)