`

分词去停用词操作

阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;

import ICTCLAS.I3S.AC.ICTCLAS50;

public class FileExcludeStopWord {

//停用词词表
public static final String stopWordTable = "停用词表路径";
public static void main(String[] args) {

//源文件和目的文件
String srcFile = "源文件路径";
String destFile = "目的文件路径";
new FileExcludeStopWord().fileExcludeStopWord(srcFile, destFile);

}

public void fileExcludeStopWord(String srcFile,String destFile){
try {
//读取原文件和停用词表
BufferedReader srcFileBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(srcFile))));
BufferedReader StopWordFileBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(stopWordTable))));

//将去除停用词的文本信息存入输出文件
BufferedWriter destFileBw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(destFile))));

//用来存放停用词的集合
Set stopWordSet = new HashSet<String>();

//初如化停用词集
String stopWord = null;
for(; (stopWord = StopWordFileBr.readLine()) != null;){
stopWordSet.add(stopWord);
}

//分词工具
ICTCLAS50 ICTCLAS = new ICTCLAS50();
// 初始化分词所用库的路径
String argu = ".";
if (ICTCLAS.ICTCLAS_Init(argu.getBytes("gb2312")) == false) {
System.out.println("分词所用库初始化失败。");
return;
}

String paragraph = null;
for(; (paragraph = srcFileBr.readLine()) != null;){
//对读入的文本进行分词
byte[] spiltResult = ICTCLAS.ICTCLAS_ParagraphProcess(paragraph.getBytes("gb2312"), 2, 0);
String spiltResultStr = new String(spiltResult,0,spiltResult.length,"gb2312");

//得到分词后的词汇数组,以便后续比较
String[] resultArray = spiltResultStr.split(" ");

//过滤停用词
for(int i = 0; i< resultArray.length; i++){
if(stopWordSet.contains(resultArray[i])){
resultArray[i] = null;
}
}

//把过滤后的字符串数组存入到一个字符串中
StringBuffer finalStr = new StringBuffer();
for(int i = 0; i< resultArray.length; i++){
if(resultArray[i] != null){
finalStr = finalStr.append(resultArray[i]).append(" ");
}
}

//将过滤后的文本信息写入到指定文件中
destFileBw.write(finalStr.toString());
destFileBw.newLine();
}

//关闭输入流
destFileBw.close();
StopWordFileBr.close();
srcFileBr.close();


} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}

}
分享到:
评论

相关推荐

    文本情感分析:去停用词

    一种方式,通过正则表达式,这里以去标点符号为例,在分词之前进行操作 import re # 通过正则表达式筛除string中的标点符号 def clearn_str(string): # 筛除掉中文标点 string = re.sub(r'["#$%&'()*+,...

    Python实现简单的文本相似度分析操作详解

    注:为了简化问题,本文没有剔除停用词“stop-word”。实际应用中应该要剔除停用词。 首先引入分词API库jieba、文本相似度库gensim import jieba from gensim import corpora,models,similarities 以下

    stopwords.txt

    NLP任务中对文本的预处理操作的停用词,必须用到的,不然jieba分词会涵盖这些停用词,停用词是不重要的,他们的语义是不能左右正反面的意思的。NLP任务中对文本的预处理操作的停用词,必须用到的,不然jieba分词会...

    基于Python爬虫+K-means机器学习算法今日热点新闻推荐系统-热点推荐、热词呈现及个性化分析(含全部工程源码)

    在分类文件中,对所有新闻进行分词、停用词过滤后使用TF-IDF矢量器将其转换为词频矩阵,根据K-means进行聚类并输出结果,生成分类之后的文件。同时包括热点新闻推荐、新闻热词推荐和个性化推荐。 4.项目博客:...

    Python实现基于BERT模型的中文文本情感分类项目源码+操作过程.zip文件

    2. 数据预处理:对文本数据进行分词、去除停用词、序列填充等预处理操作。可以使用中文分词工具如jieba,并结合BERT的Tokenizer对文本进行编码。 3. 模型选择与Fine-tuning:选择一个预训练好的中文BERT模型,比如...

    swjtu西南交大互联网搜索引擎 项目一 报告:搜索引擎文本预处理

    将各个单词进行字符化,完成删除特殊字符、大小写转换等操作调研并选择合适的中文分词技术和工具实现中文分词 删除英文停用词(Stop Word) 删除中文停用词 调用或者编程实现英文Porter Stemming功能 将中文文档进行...

    基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法

    然后,对采集到的评论数据进行预处理,包括分词、去除停用词等操作,以准备进行情感分析。 接下来,利用情感分析技术对评论进行情感倾向性判断。可以使用自然语言处理库(如cnsenti)进行情感分析。情感分析的结果...

    基于python的招聘信息爬取与分析

    随着人工智能,大数据时代的来临,python语言...此外,还对招聘要求进行分词、去停用词后,绘制词云。通过一系列的可视化操作,该文对于python岗位在全国IT市场的行情,有了更深入的了解。可以得到薪资和学历,薪资和工作年限

    AI人工智能工程师学习

    │ │ 英文文本解析任务介绍:分词、去停用词、提取词干等 │ │ │ └─第三章中文文本处理与解析 │ jieba工具库介绍 │ 【实战】python中文文本清洗、处理与可视化 │ 【实战】python新闻网站关键词抽取 │ 中文...

    大数据技术与应用专业2024届毕业设计选题

    4 中文情感识别的研究 使用爬虫技术,抓取微博的文本内容,然后利用jieba分词工具进行分词,去停用词,文本规范等预处理操作,再抽取情感特征,对文本情感识别与分类,最终输出分类结果。实验中通过多种机器学习方法对比,...

    python数据分析 实验五 商品评价分析

    实验五 商品评价分析 一、 实验目的 (1)了解文本分析的工具NLTK与jieba,会安装和使用...(3)删除分词结果中的停用词。 (4)使用wordcloud进行词云展示。 三、 实验步骤 1. 2. 3. 四、 实验结论 1. 2. 3.

    基于Python的文本相似度计算系统.zip

    基于Python的文本相似度计算系统 python;...(2)完成文本预处理功能,其中包括去除停用词、分词和词性标注等; (3)提供文本相似度计算结果的可视化功能,可以直观地展示两个文本之间的相似度。

    基于python的虚假新闻检测项目源码+文档说明.zip

    数据预处理:对收集到的数据进行预处理,包括文本清洗、分词、去除停用词等操作。这一步旨在将文本数据转化为机器学习算法可以处理的格式。 特征提取:从预处理后的文本中提取特征,常用的特征包括词频、TF-IDF、词...

    Python文本数据可视化之“词云”图.zip

    文本预处理:对文本进行分词、去停用词、词干提取等操作,以便更准确地提取关键词。生成词云图:根据处理后的文本数据,生成词云图,可以自定义词汇的大小、颜色、形状等属性。导出词云图:支持将生成的词云图导出为...

    Matlab情感识别项目代码

    对于文本情感识别,可以包括分词、词干化、去除停用词等操作。对于音频情感识别,可以包括去除噪声、降噪、语音分段等处理。 3. 特征提取:从预处理的数据中提取有意义的特征。对于文本情感识别,可以使用词袋模型...

    python项目基于深度学习的聊天机器人设计.zip

    1. 数据预处理:对输入的文本数据进行清洗、分词、去除停用词等操作,以便于后续的模型训练。 2. 模型构建:使用深度学习框架(如TensorFlow或PyTorch)构建神经网络模型,包括编码器和解码器两部分。编码器用于将...

    人工智能大作业基于Python的网络舆情分析系统源码+全部数据+文档说明.zip

    涉及数据爬取、数据清洗、文本分词、去除停用词等方面的内容。 第四部分:情感分析与主题分析 在这一部分,我们将使用Python的自然语言处理工具进行舆情数据的情感分析和主题分析。通过对文本进行

    基于深度学习的文本大数据辅助量刑规则挖掘

    随着大数据时代的到来,人工智能技术在法学领域中得到空前发展,...法律文本进行分词、去除停用词和过滤等操作,并利用词云图和分布图等对数据 进行探索性分析。第二部分,文本向量化,首先通过 TF-IDF 方法构造词向

    词典法小实验——简单文本分析个人博客汇总整理

    写在前面:文档指的是一条记录,占一行。...分词并去停用词返回嵌套列表并保存到本地 https://blog.csdn.net/weixin_43919570/article/details/104316316 从母词及其扩充的情感词典txt文件读取到列表list中 ...

    python项目文本相似度计算系统.zip

    - 支持对文本进行分词、去除停用词等预处理操作,以减少噪音和提高计算准确性。 - 提供了多种相似度计算方法,包括基于词向量的方法和基于统计的方法。 - 可以对大量文本进行批量处理,并输出相似度结果。 4. **...

Global site tag (gtag.js) - Google Analytics