前段时间跑了了一个自然语言的程序,主要是用来处理一段话,使他只有英文和数字。
我自己写了一个类,用来实现以下的功能
(1)去掉文字中的url
(2)去掉文字中所有的非英文的短语或者单词。
(3)去掉文字中所有的符号,如!,@#(&$*等
(4)去掉文字中的所有的\n \t \r
(5)把文字全部变成小写
(6)去掉文字中所有x00,x0z这样的特殊的符号,这里只能去掉x+数字着这样开头的文字
import re
#这个文件是专门处理str类型的文件,
#主要目的是去掉一段话里的非英文的内容,去掉url,去掉特殊字符如\n,\t,\r,x00这样的特殊字符
#还有就是去掉文字中的所有符号,
#把文字变成小写。
class process_str:
def get_english(self,dd):
st = ""
for k in dd.split():
if len(re.findall("[^a-zA-Z\d.]", k)) == 0:
st = st + " " + k
return st
def process_data(self,data) -> str:
# 去掉url
data_first = re.sub(r'(https|http)?:\/\/(\w|\.|\/|\?|\=|\&|\%|-)*\b', '', data, flags=re.MULTILINE)
# 去掉所有的符号,把大写改为小写。
data_second = data_first.replace(r"\n", " ").replace("?", ' ') \
.replace("/", ' ').replace(",", ' ').replace("\\", ' '). \
replace("~", ' ').replace("+", ' ').replace("=", ' ') \
.replace("!", ' ').lower().replace("#", ' ').replace("@", ' ').replace(r"""""", '') \
.replace("$", ' ').replace("%", ' ').replace("(", ' ').replace(r"\r", ' ') \
.replace(")", ' ').replace("-", ' ').replace("_", '').replace(":", ' ') \
.replace(";", ' ').replace("'", ' ').replace("{", ' ').replace("}", ' ') \
.replace("[", ' ').replace("]", ' ').replace("|", ' ').replace("*", ' ') \
.replace(">", ' ').replace("
.replace(r"\t", ' ')
# 去掉x0z这类的东西
data_three = re.sub(r'x[0-9][a-zA-Z.\d]*', '', data_second, flags=re.MULTILINE)
# 去掉非英文和数字的部分
data_four = self.get_english(data_three).replace(".", " ")
return data_four
代码的py文件我放在了我的github上
process_str.py
中