Исключить имена пользователей из твитов, используя регулярные выражения, в RapidMiner - PullRequest
0 голосов
/ 27 октября 2019

Работая над проблемой анализа настроений, я пытаюсь исключить имена пользователей из текста твитов. Например, имея следующий твит.

`Hey @SOCommunity check this out!`

Я пытаюсь сохранить только это

`Hey check this out!`

До сих пор я видел, как выбрать имя пользователя @\S+\s+, и яя пытался отрицать его, используя это выражение ^(?!@\S+\s+)\w+, которое захватывает только Hey, оставляя все остальное.

Как мне отредактировать выражение, чтобы также перехватить остальную часть твита?

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Вы можете использовать sed, чтобы заменить имя пользователя из текста. Команда Sed sed 's/@[a-zA-Z0-9]* //'

Пример:

 echo 'Hey @SOCommunity1 check this out!' | sed 's/@[a-zA-Z0-9_]\{1,15\} //'

Вывод:

Hey check this out!

Чтобы применить команду sed к файлу с именем tweets.tx

sed 's/@[a-zA-Z0-9_]\{1,15\} //' tweets.txt 
0 голосов
/ 27 октября 2019

я думаю, что вы хотите разделить группы таким образом:

@villos hey dude
(user)  (twett)

вы можете сделать это с помощью регулярного выражения ...

^(@.+?)\s+?(.*)$

вот полный пример: https://regex101.com/r/tG2vR4/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...