赞
踩
我最近在做一个自然语言处理的作业,词性标注
首先对词性标注的数据集进行处理
直接上代码,我再解释一下
- # -*- coding: utf-8 -*-
-
- import nltk
-
- def trans_chaToNum(tagged):
- pred = []
- for tag in tagged:
- result = tag[1]
- pred.append(result)
-
- # 2.把字符编号,不同的字符对应不同的编号
- mylist = set(pred)
- mylist = list(mylist)
- Pred = {}
- for i in range(len(mylist)):
- Pred[mylist[i]] = i
- # 3.把刚刚那个形式里面的字符都替换成 编号
- trans_pred = []
- for i in pred:
- trans_pred.append(Pred[i])
- return Pred, trans_pred
-
-
- if __name__ == '__main__':
-
- A = open('D:/pythonProject/CwsPosNerCNNRNNLSTM-master/CwsPosNerCNNRNNLSTM-master/traindata.txt', "r",
- encoding='utf-8').readlines()
-
- tagged_sent = [] # [('to', 'TO'), ('hold', 'VB'), ('on', 'RP'), ('to', 'TO'), ('its', 'PRP$'), ('paper', 'NN'), ('.', '.')]
- for a in A:
- sent = a.split() # ['./.']
- for item in sent:
- pair = nltk.str2tuple(item) # ('.', '.')
- tagged_sent.append(pair)
- tagged_dict, trans_tagged_sent = trans_chaToNum(tagged_sent)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
我打开的赋给A的文件的样子长这样子:
这个格式就是: 英文词/词性
sent和pair的格式样子,已经在后面标好了
最后得到的tagged_sent的格式也已经在后面标好了
最后把这个格式送进 trans_chaToNum函数里面。
最后输出的结果是这样子的:
tagged_dict=
{'NNP': 0, 'CD': 1,..., 'VBG|NN': 45, 'RB|IN': 46, 'CC': 47, 'VBD': 51, 'EX': 52, 'NN|NNS': 53}
大致长这个样子,就是会把每个词性给编号,可以看到我这个数据集里面有53种词性,每个词性给予了自己的编号,包括标点符号也给编号了
trans_tagged_sent=
[0, 3, 41, 19, 49, 25, 30,...,19, 34, 25, 14]
把所有的前面的数据集的英文词 对应的 词性进行编号,因此这个list很长很长
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。