Как убрать незнакомое слово из текста - PullRequest
0 голосов
/ 13 июня 2019

Я настраиваю новый проект в анализе настроений и хочу удалить любое незнакомое слово, символ, электронную почту или любые имена с @ или пробелом, убрать любой шум из текста

input text ="@maggieNYT KFC must be out chicken.  This guy itأ?آ?أ?آ?أ?آ?s losing his shit."

или

input text ="‰??Aye babe. Why is Pizza hut calling you at 10 PM?‰?? "

или

input text ="The team will be in @KingstonLibrary tomorrow from 2:30 - 5:30pm. Providingأ?آپ#HIVأ?آپ/ #STI tests &أ?آپ#freeأ?آپcondoms, along with information & advice onأ?آپ#PrEP #contraceptionأ?آپ& otherأ?آپ#sexualhealthأ?آپissues.

1 Ответ

0 голосов
/ 13 июня 2019

Можно сделать то, что вы просите, используя регулярные выражения , через библиотеку re в python. Вы можете рассматривать регулярные выражения как своего рода расширенную функцию поиска и замены.

Пользователь @ Abijit предоставляет регулярное выражение, которое выполнит соответствующую задачу в этом ответе .

... Следующее регулярное выражение содержит только полосы URL (не только http), любые знаки препинания, имена пользователей или любые не алфавитно-цифровые символы. Он также отделяет слово одним пробелом ...

Вот что я предлагаю.

' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)"," ",x).split())

Тестирование этого на ваших образцах строк, похоже, работает и в вашем случае. Вот мой код.

import re  # Python regex library
original: str = input()
# This following line uses @Abijit's regex
cleaned: str = ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)"," ",original).split())
print(cleaned)

Вывод для каждого следующий:

  • KFC must be out chicken This guy it s losing his shit
  • Aye babe Why is Pizza hut calling you at 10 PM
  • The team will be in tomorrow from 2 30 5 30pm Providing HIV STI tests amp free condoms along with information amp advice on PrEP contraception amp other sexualhealth issues
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...