1、首先接jieba分词,这个词库非常好用,操作简单,运行速度快
直接上代码
import jieba
import re
# import jieba.posseg as pseg
# 基于TextRank算法的关键词提取
# from jieba import analyse
txt="在新建、改建或扩建的常规水电站中,加装抽水蓄能机组建设混合式抽水蓄能电站,还应与增装常规水电机组进行技术经济比较,论证建设混合式抽水蓄能电站的必要性和合理性"
ls = jieba.cut(txt,cut_all=False) # 中文分词
word_list=[]
for seg in ls:
word_list.append(seg)
print('启用停用词过滤时的分词结果:\n', '/'.join(word_list))
分词结果:
启用停用词过滤时的分词结果:
在/新建/、/改建/或/扩建/的/常规/水电站/中/,/加装/抽水/蓄能/机组/建设/混合式/抽水/蓄能/电站/,/还/应/与/增装/常规/水电/机组/进行/技术/经济/比较/,/论证/建设/混合式/抽水/蓄能/电站/的/必要性/和/合理性
2、Snownlp分词,主要用于情感分词,不能加入自建词库
代码:
# -*- coding: utf-8 -*-
from snownlp import SnowNLP
from snownlp import sentiment
s = SnowNLP(u"在新建、改建或扩建的常规水电站中,加装抽水蓄能机组建设混合式抽水蓄能电站,还应与增装常规水电机组进行技术经济比较,论证建设混合式抽水蓄能电站的必要性和合理性")
print("1、中文分词:\n", s.words)
"""
中文分词:
这 本书 质量 真 不 太 好 !
"""
print("2、词性标注:\n", s.tags)
print("3、情感倾向分数:\n", s.sentiments)
"""
情感分数:
0.420002029202
"""
print("4、转换拼音:\n", s.pinyin)
print("5、输出前4个关键词:\n", s.keywords(4))
print("6、输出关键(中心)句:\n", s.summary(1))
print("7.1、输出tf:\n", s.tf)
print("7.2、输出idf:\n", s.idf)
n = SnowNLP('「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
print("8、繁简体转换:\n", n.han)
"""
繁简体转换:
「繁体字」「繁体中文」的叫法在台湾亦很常见。
"""
代码输出结果;
1、中文分词:
['在', '新建', '、', '改建', '或', '扩建', '的', '常规', '水电站', '中', ',', '加装', '抽', '水蓄', '能', '机组', '建设', '混合式', '抽', '水蓄', '能电站', ',', '还', '应', '与', '增装', '常规', '水电机组', '进行', '技术', '经济', '比较', ',', '论证', '建设', '混合式', '抽', '水蓄', '能电站', '的', '必要性', '和', '合理性']
2、词性标注:
<zip object at 0x0000018C7BC11048>
3、情感倾向分数:
0.03532990571701
4、转换拼音:
['zai', 'xin', 'jian', '、', 'gai', 'jian', 'huo', 'kuo', 'jian', 'de', 'chang', 'gui', 'shui', 'dian', 'zhan', 'zhong', ',', 'jia', 'zhuang', 'chou', 'shui', 'xu', 'neng', 'ji', 'zu', 'jian', 'she', 'hun', 'he', 'shi', 'chou', 'shui', 'xu', 'neng', 'dian', 'zhan', ',', 'huan', 'ying', '与', 'zeng', 'zhuang', 'chang', 'gui', 'shui', 'dian', 'ji', 'zu', 'jin', 'xing', 'ji', 'shu', 'jing', 'ji', 'bi', 'jiao', ',', 'lun', 'zheng', 'jian', 'she', 'hun', 'he', 'shi', 'chou', 'shui', 'xu', 'neng', 'dian', 'zhan', 'de', 'bi', 'yao', 'xing', 'huo', 'he', 'li', 'xing']
5、输出前4个关键词:
['常规', '抽', '水蓄', '建设']
6、输出关键(中心)句:
['在新建、改建或扩建的常规水电站中']
7.1、输出tf:
[{
'在': 1}, {
'新': 1}, {
'建': 1}, {
'、': 1}, {
'改': 1}, {
'建': 1}, {
'或': 1}, {
'扩': 1}, {
'建': 1}, {
'的': 1}, {
'常': 1}, {
'规': 1}, {
'水': 1}, {
'电': 1}, {
'站': 1}, {
'中': 1}, {
',': 1}, {
'加': 1}, {
'装': 1}, {
'抽': 1}, {
'水': 1}, {
'蓄': 1}, {
'能': 1}, {
'机': 1}, {
'组': 1}, {
'建': 1}, {
'设': 1}, {
'混': 1}, {
'合': 1}, {
'式': 1}, {
'抽': 1}, {
'水': 1}, {
'蓄': 1}, {
'能': 1}, {
'电': 1}, {
'站': 1}, {
',': 1}, {
'还': 1}, {
'应': 1}, {
'与': 1}, {
'增': 1}, {
'装': 1}, {
'常': 1}, {
'规': 1}, {
'水': 1}, {
'电': 1}, {
'机': 1}, {
'组': 1}, {
'进': 1}, {
'行': 1}, {
'技': 1}, {
'术': 1}, {
'经': 1}, {
'济': 1}, {
'比': 1}, {
'较': 1}, {
',': 1}, {
'论': 1}, {
'证': 1}, {
'建': 1}, {
'设': 1}, {
'混': 1}, {
'合': 1}, {
'式': 1}, {
'抽': 1}, {
'水': 1}, {
'蓄': 1}, {
'能': 1}, {
'电': 1}, {
'站': 1}, {
'的': 1}, {
'必': 1}, {
'要': 1}, {
'性': 1}, {
'和': 1}, {
'合': 1}, {
'理': 1}, {
'性': 1}]
7.2、输出idf:
{
'在': 3.9448128282511368, '新': 3.9448128282511368, '建': 2.5925373139803654, '、': 3.9448128282511368, '改': 3.9448128282511368, '或': 3.9448128282511368, '扩': 3.9448128282511368, '的': 3.421000008958335, '常': 3.421000008958335, '规': 3.421000008958335, '水': 2.5925373139803654, '电': 2.8067217286092396, '站': 3.071369687759611, '中': 3.9448128282511368, ',': 3.071369687759611, '加': 3.9448128282511368, '装': 3.421000008958335, '抽': 3.071369687759611, '蓄': 3.071369687759611, '能': 3.071369687759611, '机': 3.421000008958335, '组': 3.421000008958335, '设': 3.421000008958335, '混': 3.421000008958335, '合': 3.071369687759611, '式': 3.421000008958335, '还': 3.9448128282511368, '应': 3.9448128282511368, '与': 3.9448128282511368, '增': 3.9448128282511368, '进': 3.9448128282511368, '行': 3.9448128282511368, '技': 3.9448128282511368, '术': 3.9448128282511368, '经': 3.9448128282511368, '济': 3.9448128282511368, '比': 3.9448128282511368, '较': 3.9448128282511368, '论': 3.9448128282511368, '证': 3.9448128282511368, '必': 3.9448128282511368, '要': 3.9448128282511368, '性': 3.421000008958335, '和': 3.9448128282511368, '理': 3.9448128282511368}
8、繁简体转换:
「繁体字」「繁体中文」的叫法在台湾亦很常见。
3、 THULAC
代码:
# 代码示例1
import thulac
# thu1 = thulac.thulac() #默认模式
thu1 = thulac.thulac(user_dict='H:\知识图谱代码及相关文件\\test3.txt',seg_only=True)
text = thu1.cut("在新建、改建或扩建的常规水电站中,加装抽水蓄能机组建设混合式抽水蓄能电站,还应与增装常规水电机组进行技术经济比较,论证建设混合式抽水蓄能电站的必要性和合理性", text=True) #进行一句话分词
print(text)
分词结果:
Model loaded succeed
在 新建 、 改建 或 扩建 的 常规 水电站 中 , 加装 抽水 蓄 能 机组 建设 混合式抽水蓄能电站 , 还 应 与 增装 常规 水电机组 进行 技术经济比较 , 论证 建设 混合式抽水蓄能电站 的 必要性 和 合理性
4、LTP哈工大分词,目前加入自建词库存在问题。
代码:
# 加载自定义词库
with open('test3.txt', 'r', encoding='utf-8') as f:
custom_dict = [line.strip() for line in f]
import os
from pyltp import Segmentor
# print(custom_dict)
import subprocess
# 加载分词器
LTP_DIR = "./ltp_data_v3.4.0"
segmentor = Segmentor(model_path=os.path.join(LTP_DIR, "cws.model"),lexicon_path='test3.txt')
# segmentor.load(model_path=os.path.join(LTP_DIR, "cws.model",'test3.txt'))
text = "在新建、改建或扩建的常规水电站中,加装抽水蓄能机组建设混合式抽水蓄能电站,还应与增装常规水电机组进行技术经济比较,论证建设混合式抽水蓄能电站的必要性和合理性" #进行一句话分词
words = list(segmentor.segment(text))
# 输出分词结果
print(words)
结果:
['在', '新建', '、', '改建', '或', '扩建', '的', '常规', '水电站', '中', ',', '加装', '抽水', '蓄', '能', '机组', '建设', '混合式', '抽水', '蓄', '能', '电站', ',', '还', '应', '与', '增装', '常规', '水电', '机组', '进行', '技术', '经济', '比较', ',', '论证', '建设', '混合式', '抽水', '蓄', '能', '电站', '的', '必要性', '和', '合理性']
5、Hanlp
代码
from pyhanlp import *
# 加载自定义词库
with open('test3.txt', 'r', encoding='utf-8') as f:
custom_dict = [line.strip() for line in f]
# 为hanlp加载自定义词表
for keys in custom_dict:
CustomDictionary.add( keys)
print(CustomDictionary)
# 加载分词器
Segment = JClass('com.hankcs.hanlp.seg.Segment')
HanLP = JClass('com.hankcs.hanlp.HanLP')
segment = HanLP.newSegment()
# 分词
text = "在新建、改建或扩建的常规水电站中,加装抽水蓄能机组建设混合式抽水蓄能电站,还应与增装常规水电机组进行技术经济比较,论证建设混合式抽水蓄能电站的必要性和合理性"
result = segment.seg(text)
print([i.word for i in result])
# 输出分词结果
# for term in result:
# print(term.word)
结果:
['在', '新建', '、', '改建', '或', '扩建', '的', '常规', '水电站', '中', ',', '加装', '抽水', '蓄能', '机组', '建设', '混合式抽水蓄能电站', ',', '还', '应', '与', '增', '装', '常规', '水', '电机', '组', '进行', '技术经济比较', ',', '论证', '建设', '混合式抽水蓄能电站', '的', '必要性', '和', '合理性']
整理的比较匆忙,后续会将各个分词的优缺点进行描述
扫描二维码关注公众号,回复:
14826176 查看本文章