前段時間跑了了一個自然語言的程序,主要是用來處理一段話,使他只有英文和數字。
我自己寫了一個類,用來實現以下的功能
(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("$", " ").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中