中文分词总结

中文分词总结

分词类别

中文分词类别

分词工具

jieba

Github:https://github.com/fxsjy/jieba

#jupyter notenbook 安装jieba
!pip install jieba -i https://pypi.douban.com/simple/
#新建测试文本,中文分词.txt
摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点.

import jieba

def jieba分词(filename,sugges_freq=None):
    with open(filename,mode='rb') as text:
        textlist = []
        if sugges_freq:
            jieba.suggest_freq(sugges_freq,True)
        for line in text.readlines():
            temp_text = jieba.cut(line,use_paddle=True,HMM=False)
            textlist.append(' '.join(temp_text))
        
        for sentence in textlist:
            print(sentence) 
jieba分词('中文分词.txt')

分词结果

jieba分词('中文分词.txt',sugges_freq=('信息','检索'))#将信息检索分开

jieba分词('中文分词.txt',sugges_freq='研究热点')#将研究热点合并

北京大学PKUse

! pip install pkuseg -i https://pypi.douban.com/simple/
import pkuseg


def 北京大学分词(filename,outputFile='out.txt'):
    #使用网络领域模型,不进行词性标注

    pkuseg.test(filename,outputFile,model_name='web',postag=False)
北京大学分词('中文分词.txt')

分词结果

清华大学THULAC

! pip install thulac -i https://pypi.douban.com/simple/

import thulac

def 清华大学分词(text):
    thu1 = thulac.thulac()  #进行词性标注
    text = thu1.cut(text) #对input.txt文件内容进行分词,输出到output.txt
    print(text)

text = '摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点.'
清华大学分词(text)

image-20211020155642795

HanLP

pip install hanlp -i https://pypi.douban.com/simple/
import hanlp
HanLP = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH) # 世界最大中文语料库
HanLP(['摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点.'])

HanLP分词结果

FoolNLTK(Linux 环境下python3)

pip install foolnltk -i https://pypi.douban.com/simple/
#官方示例
import fool
fool.load_userdict(path)
text = ["我在北京天安门看你难受香菇", "我在北京晒太阳你在非洲看雪"]
print(fool.cut(text))
#[['我', '在', '北京', '天安门', '看', '你', '难受', '香菇'],
# ['我', '在', '北京', '晒太阳', '你', '在', '非洲', '看', '雪']]

哈工大LTP

pip install ltp -i https://pypi.douban.com/simple/

from ltp import LTP

ltp = LTP()  # 默认加载 Small 模型
seg, hidden = ltp.seg(["摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点."])
pos = ltp.pos(hidden)
print('---------'*5+'分词结果'+'---------'*5,seg,'---------'*5+'词性'+'---------'*5,pos)

哈工大分词

BaiduLac

pip install LAC -i https://pypi.douban.com/simple/

from LAC import LAC

# 装载分词模型
lac = LAC(mode='seg')

# 单个样本输入,输入为Unicode编码的字符串
text = u"摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点."
seg_result = lac.run(text)
print(seg_result)

# 批量样本输入, 输入为多个句子组成的list,平均速率会更快
texts = [u"花生很好吃呢", u"你要来一粒吗?"]
seg_result = lac.run(texts)
print(seg_result)

BaiduLac分词

pynlpir(中科院分词工具)

需要到官网下载授权证书,分析需要下载NLPIR.urer,到路径D:\Anaconda\envs\chinese\Lib\site-packages\pynlpir\Data下替换同名文件夹。

!pip install pynlpir -i https://pypi.douban.com/simple/

print("_____________中科院nlpir___________")
import pynlpir  # 引入依赖包
text = "摘要:认为分词是文本自动分类、信息检索、信息过滤、文献自动标引、摘要自动生成等中文信息处理的基础与关键技术之一,中文本身复杂性及语言规则的不确定性,使中文分词技术成为分词技术中的难点。全面归纳中文分词算法、歧义消除、未登录词识别、自动分词系统等硏究,总结出当前中文分词面临的难点与研究热点."
pynlpir.open()  # 打开分词器

result = pynlpir.segment(text, pos_tagging=False) # 使用pos_tagging来关闭词性标注
print(result)

#使用结束后释放内存:
pynlpir.close()

中科大分词系统

参考文献

1 中文分词工具比较_zlhcsm的博客-CSDN博客_中文分词工具[EB/OL]. [2021-10-18]. https://blog.csdn.net/zzzzlei123123123/article/details/104227223.
[2]pkuseg:一个多领域中文分词工具包 (English Version)[M]. LancoPKU, 2021.
3 中文分词理论知识_zlhcsm的博客-CSDN博客[EB/OL]. [2021-10-18]. https://blog.csdn.net/zzzzlei123123123/article/details/104235804.
[4]中文分词综述[EB/OL]. 知乎专栏, [2021-10-20]. https://zhuanlan.zhihu.com/p/67185497.
[5]中文分词原理及工具-云社区-华为云[EB/OL]. [2021-10-20]. https://bbs.huaweicloud.com/blogs/111974.
[6]奉国和, 郑伟. 国内中文自动分词技术研究综述[J]. 图书情报工作, 2011, 55(02): 41–45.
[7]张启宇, 朱玲, 张雅萍. 中文分词算法研究综述[J]. 情报探索, 2008(11): 53–56.
[8]JUNYI S. jieba[M]. 2021.
[9]THULAC:一个高效的中文词法分析工具包[M]. THUNLP, 2021.
[10]THULAC:一个高效的中文词法分析工具包[EB/OL]. [2021-10-20]. http://thulac.thunlp.org/message_v1_1.
[11]HanLP官网[EB/OL]. [2021-10-20]. https://www.hanlp.com/.
[12]HANKCS. HanLP: Han Language Processing[M]. 2021.
[13]WU.ZHENG. FoolNLTK[M]. 2021.
[14]LTP 4[M]. 哈工大社会计算与信息检索研究中心, 2021.
[15]Stanford CoreNLP[M]. Stanford NLP, 2021.
[16]baidu/lac[M]. Baidu, 2021.
[17]pynlp报错:pynlpir.LicenseError: Your license appears to have expired. Try running 《pynlpir update》解决办法。 - 温良Miner - 博客园[EB/OL]. [2021-10-20]. https://www.cnblogs.com/miners/p/10108964.html.
[18]NLPIR-team/NLPIR[M]. NLPIR-team, 2021.

import WordSegment.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.*; import java.io.File; import java.util.Vector; import javax.swing.*; /** * */ /** * @author Truman * */ public class WordSegDemoFrame extends JFrame implements ActionListener { final static int ALGO_FMM = 1; final static int ALGO_BMM = 2; private JMenuBar menuBar = new JMenuBar(); private JMenuItem openDicItem, closeItem; private JRadioButtonMenuItem fmmItem, bmmItem; private JMenuItem openTrainFileItem, saveDicItem, aboutItem; private JButton btSeg; private JTextField tfInput; private JTextArea taOutput; private JPanel panel; JLabel infoDic, infoAlgo; private WordSegment seger; private DicTrainer trainer = new DicTrainer(); private void initFrame() { setTitle("Mini分词器"); setDefaultCloseOperation(EXIT_ON_CLOSE); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("文件"); JMenu algorithmMenu = new JMenu("分词算法"); JMenu trainMenu = new JMenu("训练语料"); JMenu helpMenu = new JMenu("帮助"); openDicItem = fileMenu.add("载入词典"); fileMenu.addSeparator(); closeItem = fileMenu.add("退出"); algorithmMenu.add(fmmItem = new JRadioButtonMenuItem("正向最大匹配", true)); algorithmMenu.add(bmmItem = new JRadioButtonMenuItem("逆向最大匹配", false)); ButtonGroup algorithms = new ButtonGroup(); algorithms.add(fmmItem); algorithms.add(bmmItem); openTrainFileItem = trainMenu.add("载入并训练语料"); saveDicItem = trainMenu.add("保存词典"); aboutItem = helpMenu.add("关于Word Segment Demo"); menuBar.add(fileMenu); menuBar.add(algorithmMenu); menuBar.add(trainMenu); menuBar.add(helpMenu); openDicItem.addActionListener(this); closeItem.addActionListener(this); openTrainFileItem.addActionListener(this); saveDicItem.addActionListener(this); aboutItem.addActionListener(this); fmmItem.addActionListener(this); bmmItem.addActionListener(this); JPanel topPanel = new JPanel(); topPanel.setLayout(new FlowLayout());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要住校账号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值