首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python regex从文本中提取单词

使用python regex从文本中提取单词
EN

Stack Overflow用户
提问于 2015-08-05 13:03:18
回答 2查看 1K关注 0票数 1

我有一个文本(字符串),我想在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,这会给经济带来数十亿美元的损失”

我提前感谢您的时间和关注:)

EN

回答 2

Stack Overflow用户

发布于 2015-08-05 13:53:58

这是一个正则表达式,它抓住了任何由长度为3或更长的字母组成的单词。

代码语言:javascript
复制
[a-zA-Z]{3,}

这里有一个正则表达式,它在没有URL的情况下抓住任何行。

代码语言:javascript
复制
^((?!(https?:\/\/)+([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w=?$#% \.-]*)).)*$

我还没想出如何把两者结合起来。但至少,这是朝着正确方向迈出的一步。您可以将每个单词放在自己的行中,然后删除urls,然后匹配3个或更多字母的单词。很丑,但很管用。

票数 1
EN

Stack Overflow用户

发布于 2015-08-05 13:25:16

我不知道python,但是regex对于任何编程语言都是一样的,所以我的答案是:

代码语言:javascript
复制
"(\s?\w+[0-9]+\w+\s?)|([0-9]+)|(\s\w\w\s)|(http://t.co/)"g
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31833380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档