Java正则表达式过滤、替换,将一段文本中的英语单词分别提取出,并统计词频,按词频排序。

本文介绍如何使用Java正则表达式从文本中提取英文单词,统计词频并按频率排序。首先,过滤掉非字母字符,保留分隔单词的符号。接着,将中文替换为*,然后按*号分隔提取单词,实现词频统计和排序。
摘要由CSDN通过智能技术生成

最近在学习自然语言处理,在建立基础标签库时,遇到一个需要提取语料中的英文单词的工作,做好了现在来和大家分享下。

实现效果:读取文件内容,把其中的英文单词提取出,并统计词频。提取时,原本不是连在一起的单词可以分开独立提取,例如:我的PPT和WORD,可以提取出PPT,WORD两个单词。

基本思想:如果直接用正则表达式把其他非字母字符都过滤掉,那么剩下的英文单词就会连在一起了,所以,在处理时,应该保留下分隔英文单词的字符。首先文本可能会存在乱七八杂的符号,先把这些符号过滤掉(包括数字也可以过滤掉,看自己需要),然后剩下的就是英文和中文啦,这时候再把英文按中文分开提取就好啦。

举个栗子:我要处理的文本内容是:我的#……¥@PPT和#@WORD

第一步:过滤乱七八糟符号后(用正则表达式就好啦),变为:我的PPT和WORD

第二步:把中文换为*号(同样用正则表达式就好啦),变为:**PPT*WORD

最后:按*号分开提取(用StringTokenizer),变为:PPT   WORD

也就是这样的逻辑:

-------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值