自然语言处理:词性标注

步骤一:导入 jieba 库,对文本内容进行分词处理。

导入 jieba 库的 posseg 模块,对文本进行分词标注。
步骤二:
词性统计:
导入 pandas 库,提取出标注返回结果的每项元素的 flag 部分,即词性部分,随后
pandas 中的 value_counts 进行词性统计,并用 head() 函数返回出现最多的前十行。
词性种类统计:
将原标记数据进行去重处理,再遍历去重后的数据,此时若同样的词出现 n 次,即
为词一样但对应词性不一样,也就是说一个词包含了 n 种词性。按这样的思路,对词性
种类进行值的统计。输出种类最多的前十项。
代码:
import nltk import re 
import jieba data_path='D://自然语言处理/西游记第一章.txt' 
text='' 
with open(data_path,'r') as f: 
    text=f.read() 
    print(len(set(text))) 
    text 
rst1=re.findall(r'<p>\n\t\u3000\u3000(.*)</p>\n',text) 
print(rst1) 
rst1=','.join(rst1) 
text2=jieba.lcut(rst1) 
print('分词结果',text2) 
#标注 
import jieba.posseg as pseg 
psgRes=pseg.lcut(rst1) 
print('标注结果:',psgRes) 
#统计词性标注结果中每种词性出现的次数,并输出出现次数最多的前十项 
import pandas as pd 
flags=[] 
for i in psgRes: 
    flags.append(i.flag) 
    result=pd.value_counts(flags) 
    print('词性统计结果\n',result) 
    print('词性出现最多的前十行\n',result.head(10)) 
#统计词性标注结果中每个词有多少种词性,并输出被标注词性种类最多的前十项 
#去重
psgRes1=[]
for l1 in psgRes: 
    if l1 not in psgRes1: 
        psgRes1.append(l1) 
print(psgRes1) 
words=[] 
for i in psgRes1: 
    words.append(i.word) 
result1=pd.value_counts(words) 
print('词性种类统计结果\n',result1) 
print('被标注词性种类最多的前十项\n',result1.head(10))

去重方法可用set函数,但会影响原序列顺序。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

那个叫马尔的大夫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值