Punch NLP, algoritmos de segmentación de palabras de uso común en la práctica

1. Primero conéctese a la segmentación de palabras jieba, este diccionario de sinónimos es muy fácil de usar, fácil de operar y rápido para ejecutar
directamente en el código

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))

Resultados de la segmentación de palabras:

启用停用词过滤时的分词结果:
 在/新建//改建//扩建//常规/水电站///加装/抽水/蓄能/机组/建设/混合式/抽水/蓄能/电站/////增装/常规/水电/机组/进行/技术/经济/比较//论证/建设/混合式/抽水/蓄能/电站//必要性//合理性


2. La segmentación de palabras de Snownlp, utilizada principalmente para la segmentación de palabras emocionales, no se puede agregar al código de tesauro autoconstruido :

# -*- 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)
"""
繁简体转换:
「繁体字」「繁体中文」的叫法在台湾亦很常见。
"""

resultado de salida de código;

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.
Código 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)

Resultados de la segmentación de palabras:

Model loaded succeed
在 新建 、 改建 或 扩建 的 常规 水电站 中 , 加装 抽水 蓄 能 机组 建设 混合式抽水蓄能电站 , 还 应 与 增装 常规 水电机组 进行 技术经济比较 , 论证 建设 混合式抽水蓄能电站 的 必要性 和 合理性

4. Participio del LTP Harbin Institute of Technology, actualmente hay un problema al agregar el banco de palabras autoconstruido.
código:

# 加载自定义词库
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)

resultado:

['在', '新建', '、', '改建', '或', '扩建', '的', '常规', '水电站', '中', ',', '加装', '抽水', '蓄', '能', '机组', '建设', '混合式', '抽水', '蓄', '能', '电站', ',', '还', '应', '与', '增装', '常规', '水电', '机组', '进行', '技术', '经济', '比较', ',', '论证', '建设', '混合式', '抽水', '蓄', '能', '电站', '的', '必要性', '和', '合理性']

5.
código 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)

resultado:

['在', '新建', '、', '改建', '或', '扩建', '的', '常规', '水电站', '中', ',', '加装', '抽水', '蓄能', '机组', '建设', '混合式抽水蓄能电站', ',', '还', '应', '与', '增', '装', '常规', '水', '电机', '组', '进行', '技术经济比较', ',', '论证', '建设', '混合式抽水蓄能电站', '的', '必要性', '和', '合理性']

La clasificación es relativamente apresurada, y las ventajas y desventajas de cada participio se describirán más adelante.

Supongo que te gusta

Origin blog.csdn.net/self_Name_/article/details/129353389
Recomendado
Clasificación