语料预处理总结

目录

    • 1. 用于处理最后的输出结果,主要是将英文去掉
    • 2. 去除了停用词,并且针对的是列表中的每一个字段
    • 3. 去除了停用词,并且针对的是列表中的每一个字段
    • 4. 将最后结果中的标点符号进行规整,将列表中指定字段的字符串中重复标点去掉
    • 5. 判断一个词语是不是人名

1. 用于处理最后的输出结果,主要是将英文去掉

import jieba
import re
eve_list = ["测试中出现Power_Type_check", "依据BOM和装配图,BOM中没有不用处理", "内存问题反馈攻关组跟踪"]
print(list(map(lambda x: re.sub("[\s\d%_/a-zA-Z]+", "", x), eve_list)))

2. 去除了停用词,并且针对的是列表中的每一个字段

import jieba
import re
eve_list = ["测试中出现Power_Type_check", "依据BOM和装配图,BOM中没有不用处理,谢谢", "内存问题反馈攻关组跟踪"]
stopwords = ['谢谢','请']

cut_word = [jieba.lcut(every_str) for every_str in eve_list]
res = [[] for i in range(len(eve_list))]
for i in range(len(cut_word)):
    res[i] = [every_word for every_word in cut_word[i] if every_word not in stopwords]  # 过滤停用词,所有字段
result = []
for i in range(len(res)):
    temp_string = "".join(res[i])
    temp_clean_string = re.sub("[\s\d%_/a-zA-Z]+", "", temp_string)
    result.append(temp_clean_string)
print(result)

3. 去除了停用词,并且针对的是列表中的每一个字段

import jieba
import re
eve_list = "依据BOM和装配图,BOM中没有不用处理,谢谢"
stopwords = ['谢谢','请']

cut_word_list = jieba.lcut(eve_list)
res = []
for every_word in cut_word_list:
    if every_word in stopwords:
        continue
    res.append(every_word)
temp = " ".join(res)
res_string = re.sub("[\s\d%_/a-zA-Z#::.~\-]+", "", temp)
print(res_string)

4. 将最后结果中的标点符号进行规整,将列表中指定字段的字符串中重复标点去掉

import jieba
import re

# 输入:temp_list--["", "", "", "", ""]  处理对象
#       index_list--[1,2,3,4,5]  处理的列表列号
# 返回值:temp_list--["", "", "", "", ""]  处理结果

temp_list = ["测试中出现Power_Type_check123", "依据BOM和装配图,BOM中没有不用处理,谢谢,", "!内存问题反馈攻关组跟踪"]
index_list = [0, 1, 2]

for i in index_list:
    temp_list[i] = temp_list[i] + "。"      # 每句后加句号
    temp_list[i] = re.sub("[^0-9A-Za-z\u4e00-\u9fa5]{2,20}", ",", temp_list[i]) # 保留

    if temp_list[i][-1] == ",":
        temp_list[i] = temp_list[i].strip(",") + "。"  #  每句末如果是逗号,改为句号

    if re.sub("[^0-9A-Za-z\u4e00-\u9fa5]", "", temp_list[i][0]) == "":  # 证明开头是标点
        temp_list[i] = temp_list[i][1:]

print(temp_list)

5. 判断一个词语是不是人名

import jieba
import re
import jieba.posseg as pseg

temp_list = "张杰在测试中发现故障"
pair_word_list = pseg.lcut(temp_list)
for eve_word, cixing in pair_word_list:
    if cixing == "nr":
        print(eve_word)

你可能感兴趣的:(NLP,python,预处理)