我的项目(与这个问题无关,只是上下文)是一个ML分类器,我正在尝试改进它,发现当我从提供给它的文本中剥离url时,一些url被空格打断了。例如:
https:// twitter.com/username/sta tus/ID
当我删除了没有断开的链接后,我就只剩下像www.com这样的想法了。我用Python中的以下正则表达式删除了这些表达式:
tweet = re.sub('(www|http).*?(org |net |edu |com |be |tt |me |ms )','',tweet);
我在每一个链接后面都加了一个空格,因为这是在常规的条带和文本处理之后发生的(所以只处理URL中由空格分隔的部分),理论上我们应该只提取断开链接的剩余部分。。。不是这样的
http website strangeTLD .... communication
这不是完美的,但它的工作,但我只是想,我可能会尝试先发制人删除网址从twitter只,因为我知道,空间打破了常规的网址带将永远在同一个地方,希望这能提高我的分类精度?这将删除链接后出现的字符串。。。特别是图片,这是我的很多资料。你知道吗
具体来说,有没有一种方法可以选择实体的周围/后面:
pic.twitter.com/
或者,参考我前面给出的示例,选择用户名后面的实体,并在status中用空格分隔(我只是猜测这个regex)。。。你知道吗
http.*?twitter.com/*?/sta tus/
提前谢谢!作为记录,我得到了这个数据集;我不知道为什么url几乎都被空格打断了。你知道吗
是的,您所说的内容称为正向lookback并使用
(?<=...)
,省略号应该替换为您要跳过的内容。你知道吗例如,如果您想在
https://twitter.com/username/status/ID
中选择username
后面的内容,只需使用你会得到
status/ID
,就像你看到的live demo。你知道吗在本例中,我必须按照Regex规范的要求,使用反斜杠转义斜杠
/
;我还使用Kleene star operator,即星号来匹配.
(任何字符)的任何出现,就像您所做的那样。你知道吗正向lookback组合的作用是在光标的当前位置之前指定一些强制文本;换句话说,它将光标放在您输入的表达式之后(如果所述文本存在)。你知道吗
当然,这在您的例子中是不够的,因为
username
不是固定字符串,而是可变字符串。这可能是一个额外的要求,因为lookbehind不适用于可变长度。 所以你可以跳过www.twitter.com/
然后,通过Python创建一个子字符串
在这个demo(单击“Execute”)中测试它;这个question的答案中简单解释了它的工作原理(简而言之,您只需在第一个斜杠字符处拆分字符串)。你知道吗
作为旁注,URL中不允许空白/空格,如有必要,通常编码为
%20
或+
(参见this答案)。换句话说,你得到的每一个网址都可以在处理前安全地去掉空格,所以。。。他们为什么不这么做?你知道吗相关问题 更多 >
编程相关推荐