我最近在做一个自然语言处理的作业,词性标注
首先对词性标注的数据集进行处理
直接上代码,我再解释一下
# -*- coding: utf-8 -*-import nltkdef 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_predif __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)
我打开的赋给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很长很长
NLP对数据集进行(词性标注):将所有的词性进行汇总并且编号;将所有的英文词对应的词性转换成编号 得到list
如果觉得《NLP对数据集进行(词性标注):将所有的词性进行汇总并且编号;将所有的英文词对应的》对你有帮助,请点赞、收藏,并留下你的观点哦!