我有一个文本(字符串),我想在python中执行这个任务。
我执行CountVectorizer方法是为了制作一袋单词。您可以在这里找到以下方法:extraction.text.CountVectorizer.html
该方法包括stopWords去除,效果良好。它删除任何标点符号并打断每一个单词。但是除了单词,它还会返回很多垃圾,比如单个字母和数字。
但是,这个方法有一个名为"token_pattern“的参数,它接受一个字符串(regex),可以给出更好的结果。
我想要做的是:( a)将开始、结束或的任何单词都包括数字。( b) 不包括文本中的任何数字c)排除任何单词<= 2字母b)排除所有http页面
例如,这个regex应该给我以下内容:
text =“带Fido去兜风是很危险的:http://t.co/eR2WfAnZBI http://t.co/RF3bhPNPwR',平均每年,卡车会产生200亿英里的空里程,这将使经济损失数十亿美元”。
final_text =“每年平均会有数十亿辆空车载运Fido,这会给经济带来数十亿美元的损失”
我提前感谢您的时间和关注:)
发布于 2015-08-05 13:53:58
这是一个正则表达式,它抓住了任何由长度为3或更长的字母组成的单词。
[a-zA-Z]{3,}这里有一个正则表达式,它在没有URL的情况下抓住任何行。
^((?!(https?:\/\/)+([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w=?$#% \.-]*)).)*$我还没想出如何把两者结合起来。但至少,这是朝着正确方向迈出的一步。您可以将每个单词放在自己的行中,然后删除urls,然后匹配3个或更多字母的单词。很丑,但很管用。
发布于 2015-08-05 13:25:16
我不知道python,但是regex对于任何编程语言都是一样的,所以我的答案是:
"(\s?\w+[0-9]+\w+\s?)|([0-9]+)|(\s\w\w\s)|(http://t.co/)"ghttps://stackoverflow.com/questions/31833380
复制相似问题