在 RapidMiner 中使用正则表达式从推文中排除用户名

Exclude usernames from tweets, using regular expressions, in RapidMiner

在处理情绪分析问题时,我试图从推文文本中排除用户名。例如,有以下推文。

`Hey @SOCommunity check this out!`

我正在努力保留这个

`Hey check this out!`

到目前为止,我已经了解了如何 select 用户名 @\S+\s+ 并且我尝试使用仅捕获 Hey 的表达式 ^(?!@\S+\s+)\w+ 来否定它省略其余部分。

我应该如何编辑表达式才能同时捕捉到推文的其余部分?

我认为你想要像这样分开的组:

@villos hey dude
(user)  (twett)

你可以用正则表达式来做到这一点...

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

这里是完整的例子: https://regex101.com/r/tG2vR4/1

您可以使用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!

对名为 tweets.tx

的文件应用 sed 命令
sed 's/@[a-zA-Z0-9_]\{1,15\} //' tweets.txt