Python切词

  中文分词指的是将中文文本按照一定的规则划分成词语的过程,是中文自然语言处理的重要技术之一。Python中有很多成熟的中文分词工具和库,比如:

  jieba:是目前最流行的中文分词工具之一,支持中、英文分词和词性标注,开源免费。
  THULAC,一个高效的中文词法分析工具包,可实现中文分词、词性标注、命名实体识别等功能,适用于大规模文本处理。
  SnowNLP:一个Python中文自然语言处理库,支持中文分词、情感分析、文本分类等功能。
  NLTK:一个Python自然语言处理库,支持多种语言分词、词性标注、语法分析等功能。
  HanLP:一个Java语言的自然语言处理工具包,支持中文分词、命名实体识别、依存句法分析等功能,也有Python接口。

其中,jieba是最常用的中文分词工具之一,它支持三种分词模式:精确模式、全模式和搜索引擎模式。pkuseg是由北京大学自然语言处理实验室开发的一个中文分词工具,它具有较高的分词准确率和速度。HanLP是由中科院计算所自然语言处理实验室开发的一款自然语言处理工具,也支持中文分词。

下面以jieba为例,介绍如何使用Python进行中文分词。

1. 安装jieba

可以使用pip安装jieba:

pip install jieba

2. 基本用法

最简单的中文分词就是使用jieba的cut方法:

import jieba

text = "今天天气真好"
words = jieba.cut(text)
print(list(words))

输出结果:

['今天', '天气', '真好']

其中,cut方法返回的是一个生成器,需要通过list()方法转换成列表。

3. 切词模式

jieba支持三种切词模式:

  • 精确模式(默认):试图将句子最精确地切分,适合文本分析;
  • 全模式:把句子中所有的可以成词的词语都扫描出来,速度很快,但是不能解决歧义;
  • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

可以通过设置cut方法的第二个参数来指定切词的模式:

import jieba

text = "今天天气真好"
words = jieba.cut(text, cut_all=True)  # 全模式
print(list(words))

输出结果:

['今天', '天气', '真好', '今天天气', '天气真', '真好']

4. 添加自定义词典

如果jieba分词不能识别一些专有名词或新词,可以手动添加自定义词典。自定义词典的格式为:每行一个词,每行分三部分:词语、词频、词性,用空格隔开。

import jieba

# 添加自定义词典
jieba.load_userdict("my_dict.txt")

text = "Python编程真好玩"
words = jieba.cut(text)
print(list(words))

其中,my_dict.txt是自定义词典文件。如果有多个词典文件,可以使用;分隔:

jieba.load_userdict("my_dict1.txt;my_dict2.txt")

5. 其他功能

jieba还提供了其他一些功能,比如词性标注、关键词提取等。具体用法可以参考jieba的官方文档。

你可能感兴趣的:(Python与网络爬虫,python,切词,中文分词)