在 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
在处理情绪分析问题时,我试图从推文文本中排除用户名。例如,有以下推文。
`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