python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python中文分词

Python中文分词工具使用详解

作者:matrixlzp

这篇文章主要为大家详细介绍了Python中文分词工具的具体使用,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下

一、场景分析

我们平常爬地图 POI 数据的时候,会得到大量的中文地址信息,比如【厦门大学附属中山医院】这个时候,就需要做中文分词,以便进一步分析。

二、中文分词库试用

1、jieba(结巴分词)

pip install jieba

test1.py 代码如下:

import jieba
 
text = "厦门大学附属中山医院"
words = jieba.cut(text)
print( list(words) )

运行

py test1.py

2、SnowNLP

pip install snownlp

test2.py  代码如下:

from snownlp import SnowNLP
 
text = "厦门大学附属中山医院"
s = SnowNLP(text)
words = s.words
print(words)

运行

py test2.py

3、thulac(清华大学自然语言处理与社会人文计算实验室开发的中文词法分析工具包)

pip install thulac

test3.py 代码如下:

import thulac
 
thu = thulac.thulac()
text = "厦门大学附属中山医院"
result = thu.cut(text)
print(result)

运行

py test3.py

三、总结

通过试用,发现三款分词库都能准确的把词条进行分词。

thulac 分词结果,因为加入了 词性标注,结果比较复杂。

jieba 的结果最简单,也最接近自然语言。

四、实战案例

从一个 txt 读入一批中文词条,进行分词,然后把分词结果写入 excel 文件中。

 test.py 代码如下:

import jieba
from openpyxl import Workbook
 
# 创建一个新的工作簿
wb = Workbook()
# 选择默认的活动工作表
ws = wb.active
 
# 向工作表中写入表头
ws['A1'] = '分词'
 
# 读取文件
input_path = r"C:\Users\Administrator\Desktop\py\split words\demo\address.txt"
with open(input_path, 'r', encoding='utf-8') as input_file:
    for line in input_file:
        word = line.strip()
        print("---------"+word)
        words = jieba.cut( word )
        ll = list(words)
        for item in ll:
            print(item.strip())
            temp_list = []
            temp_list.append( item.strip() )
            ws.append(temp_list) 
                 
input_file.close()
# 保存工作簿
wb.save('output.xlsx')

address.txt 如下:

厦门大学思明校区
厦门大学附属中山医院
厦门南洋职业学院
集美大学

运行

py test.py

output.xlsx 如下:

到此这篇关于Python中文分词工具使用详解的文章就介绍到这了,更多相关Python中文分词内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文