NLP对数据集进行(词性标注):将所有的词性进行汇总并且编号;将所有的英文词对应的词性转换成编号,得到list

我最近在做一个自然语言处理的作业,词性标注

首先对词性标注的数据集进行处理

直接上代码,我再解释一下

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

我打开的赋给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很长很长

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值