200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 当下流行的中文分词模块jieba

当下流行的中文分词模块jieba

时间:2021-01-27 03:00:13

相关推荐

当下流行的中文分词模块jieba

当前流行的中文分词模块包括

Jieba 分词:Jieba 是用 Python 实现的开源中文分词库,支持三种分词模式:精确模式、全模式和搜索引擎模式,并且支持自定义词典。THULAC 分词:THULAC 是由清华大学自然语言处理实验室开发的开源中文分词工具,可以对中文进行分词、词性标注和命名实体识别。LTP 分词:LTP (Language Technology Platform) 是由中科院自然语言处理研究所开发的开源自然语言处理工具包,包含中文分词、词性标注、句法分析、命名实体识别等功能。SnowNLP 分词:SnowNLP 是一个基于 Python 的轻量级中文自然语言处理工具包,提供了中文分词、情感分析、文本摘要等功能。PyHanLP 分词:PyHanLP 是用 Python 实现的开源中文自然语言处理工具包,支持中文分词、词性标注、命名实体识别、情感分析、文本聚类、文本分类、文本摘要等功能。

这些中文分词模块都有自己的特点和优劣,你可以根据自己的需求来选择适合的工具。

这里对于中文语料来说应用最广的就是 jiba 分词了。

文章目录

jieba 最好文分词组件jieba 中文词法分析引擎安装文本分割添加自定义词典关键词提取词性标注并行分词

jieba 最好文分词组件

jieba是一个开源的中文分词组件,它在Python中是一种非常流行的选择。有几个原因可以解释为什么jieba是Python中最好的文本分词组件。

功能强大: jieba提供了多种分词模式,包括精确模式、全模式、搜索引擎模式和 HMM 模型。它还支持自定义词典和停用词列表,可以更好地处理中文中常见的新词和表意不清的词。性能优越: jieba在处理大量文本时性能良好,速度快。它使用了 Cython 优化,可以有效提升运行速度。使用方便: jieba提供了一个简单易用的接口,可以快速集成到你的应用中。它也支持命令行工具,可以方便地在命令行中使用。社区支持: jieba有广泛的社区支持,有许多文档、教程和示例可以帮助你使用它。如果你遇到问题,也可以在社区中寻求帮助。

总的来说,jieba是一个功能强大、性能优越、易用的中文分词组件,在Python中是一个非常好的选择。

jieba分词提供了3种分词模式,分别是:

精确模式: 精确模式会将句子最精确地切开,适合用于文本分析。全模式: 全模式会将句子中所有的可以成词的词语都扫描出来,速度较慢,但是效果更好。搜索引擎模式: 搜索引擎模式在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

并且支持繁体分词,支持自定义词典等功能。

jieba 中文词法分析引擎

安装

pip install jieba

文本分割

import jiebatext = "我明天去理工大学上课,早上十点开始。"

jieba.cut是生成器。jieba.lcut的返回值是列表。jieba.cut_for_search的返回值是生成器的返回值。jieba.lcut_for_search是列表。

精确模式

segments = jieba.cut(text)list(segments)['我', '明天', '去', '东京大学', '上课', '。', '早上', '十点', '开始', '。']segments = jieba.lcut(text)list(segments)['我', '明天', '去', '东京大学', '上课', '。', '早上', '十点', '开始', '。']

全模式

segments = jieba.cut(text, cut_all=True)list(segments)['我', '明天', '去', '东京', '东京大学', '大学', '学上', '上课', '。', '早上', '十点', '开始', '。']segments = jieba.lcut(text, cut_all=True)list(segments)['我', '明天', '去', '东京', '东京大学', '大学', '学上', '上课', '。', '早上', '十点', '开始', '。']

搜索引擎模式

segments = jieba.cut_for_search(text)list(segments)['我', '明天', '去', '东京', '大学', '东京大学', '上课', '。', '早上', '十点', '开始', '。']segments = jieba.lcut_for_search(text)list(segments)['我', '明天', '去', '东京', '大学', '东京大学', '上课', '。', '早上', '十点', '开始', '。']

添加自定义词典

可以使用 jieba 的 add_word() 函数向分词器添加自定义词典。

import jieba# 将自定义词添加到分词器中jieba.add_word("自定义词")# 将句子分解为单词seg_list = jieba.cut("这是一个句子,包含了自定义词")print(seg_list)['这', '是', '一个', '句子', ',', '包含', '了', '自定义词']

也可以将自定义词加载到自定义词典文件中,然后使用 jieba.load_userdict() 函数加载到分词器中。

import jieba# 加载自定义词典文件jieba.load_userdict("custom_dict.txt")# 将句子分解为单词seg_list = jieba.cut("这是一个句子,包含了自定义词")

自定义词典文件可以帮助jieba更好地处理新词汇和专有名词。custom_dict.txt 自定义词典文件应该是一个文本文件,每行一个单词。可以在单词后面使用空格或 tab 键来指定词性。

自定义词A n自定义词B n自定义词C n

关键词提取

可以使用 jieba.analyse 模块中的函数进行关键词提取。

import jieba.analyse# 定义文本text = "这是一篇文章,文章中提到了空气污染、交通堵塞、住房短缺等问题。"# 提取关键词keywords = jieba.analyse.extract_tags(text)print(keywords)['空气污染', '交通堵塞', '住房短缺', '文章']

extract_tags() 函数接受两个参数:

text:要提取关键词的文本。topK:要提取的关键词数量,默认值为 20。

可以使用这个函数来提取文本中的关键词,然后使用这些关键词进行文本分类或其他应用。

jieba.analyse 模块使用了基于 TF-IDF 算法的关键词提取方法。TF-IDF 算法通过计算文本中每个词语的权重,从而找出重要的关键词。

词性标注

可以使用 jieba.posseg 模块中的函数进行词性标注。

import jieba.posseg as pseg# 定义文本text = "这是一篇文章,文章中提到了空气污染、交通堵塞、住房短缺等问题。"# 分词并标注词性words = pseg.cut(text)# 输出每个词语和它的词性for word, pos in words:print(word, pos)这 r是 v一 m篇 m文章 n, x文章 n中 f提到 v了 u空气 n污染 n、 x交通 n堵塞 v、 x住房 n短缺 n等 d问题 n。 x

pseg.cut() 函数接受一个文本作为输入,并将文本分解为单词,同时标注每个单词的词性。词性是一个简短的字符串,表示单词在句子中的功能。例如,n 表示名词,v 表示动词,a 表示形容词等。

你可以使用词性标注功能来更好地理解文本的意思,也可以使用词性信息进行文本处理任务,如语法分析、信息抽取等。

并行分词

可以通过多核 CPU 加速分词过程。可以使用 jieba.analyse.tfidf 函数进行并行分词。

import jieba.analyse# 定义文本text = "这是一篇文章,文章中提到了空气污染、交通堵塞、住房短缺等问题。"# 使用并行分词keywords = jieba.analyse.tfidf(text, n_jobs=4)print(keywords)['空气污染', '交通堵塞', '住房短缺', '文章']

tfidf() 函数接受两个参数:

text:要分词的文本。n_jobs:要使用的 CPU 核心数,默认值为 1。

并行分词仅在 Python 3 中可用,可以通过指定 n_jobs 参数来控制并行分词的线程数。

如果是 Python 2 则可以使用 jieba.enable_parallel() 函数开启并行分词功能。但是这个函数需要你安装并使用多进程库 multiprocessing。

用法:

jieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数。jieba.disable_parallel() # 关闭并行分词模式。

import jieba.analyseimport multiprocessing# 启用并行分词jieba.enable_parallel(iprocessing.cpu_count())# 定义文本text = "这是一篇文章,文章中提到了空气污染、交通堵塞、住房短缺等问问题。"keywords = jieba.analyse.tfidf(text)print(keywords)['空气污染', '交通堵塞', '住房短缺', '文章']

并行分词可以大大加快分词过程,特别是在处理大型文本时。但是它也会带来额外的计算开销,所以你需要根据实际情况来决定是否使用并行分词。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。