LDA学习

博客学习

Eclipse下JGibbLDA使用总结
IKAnalyzer2012进行分词处理

学习过程

IKAnalyzer中已学习到这一步,前面步骤中好多地方找不到对应位置,LDA学习中先用这个来进行分词处理,IKA是进行分词处理的机器。两篇博客很难,一步步的跟着(中间有跳的步骤)。

LDA学习进行到运行lda这一步,去进行分词处理了。

IKAnalyzer进行分词处理已初步创建好文件夹,new—file----文件名,即可创建。IKA学习到此位置,不懂创建txt后后续操作。

警示符号没有出来,不知道如何添加文本进入文件。

分词学习过程中要改的代码部分:
在这里插入图片描述

在这里插入图片描述

分词处理遇到的问题

1.所放文件需要分析的路径名要对应

2.一些东西要注释掉:可以第27行32到34行38行用//屏蔽掉

3.自动分行目前也还不懂。

4.代码微小部分的改动。

5.注意:“空格换行空格”的话是表示识别出“换行”这个分词,代码中仅有“换行”才会使结果自动换行

6.分词弹幕的时候ext.和stopwords.中不能放任何常用停用词和扩展词,才能运行出完整的分词结果。

import java.io.*;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;
import org.wltea.analyzer.lucene.IKAnalyzer;
 
public class IKAnalyzerTest {
    public static void main(String[] args) throws IOException {
        String filePath ="D:\\弹幕.txt";
        String news=new String();
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF8"));
        String str;
        String strs;
        while ((str = in.readLine()) != null) {
        	strs=str+"换行";
            news+=strs;
        }
       in.close();
 
       //System.out.println(news);
       IKAnalyzer analyzer = new IKAnalyzer(true);
       StringReader reader = new StringReader(news);
       TokenStream ts = analyzer.tokenStream(" ", reader);
       CharTermAttribute term = ts.getAttribute(CharTermAttribute.class);
       while(ts.incrementToken()){
           System.out.print(term.toString()+" ");
           }
       analyzer.close();
       reader.close();
        
       System.out.println();
       StringReader re = new StringReader(news);
       IKSegmenter ik = new IKSegmenter(re,true);
       Lexeme lex = null;
        
       File  f = new File("D://success.txt");
       f.delete();
      String path="D://success.txt";  //%%%%%%
 
        
       while((lex=ik.next())!=null){
          // System.out.print(lex.getLexemeText()+" ");
           try { 
                FileWriter fw=new FileWriter(path,true);
                PrintWriter pw=new PrintWriter(fw); 
                pw.print((lex.getLexemeText().replace("换行","\n")+" ").replace("\n ","\n"));
                //pw.print(lex.getLexemeText()+" ")
                
                pw.close(); 
                //bw.close(); 
                fw.close(); 
            } catch (IOException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); } 
       }
            
        
    }
}

运行LDA中的问题(已解决)

1.要将已分词的txt放进去(注意要将其换成UTF-8格式);

2.配置中Main要一致;

3.配置中要非常注意空格字母问题,张瑞老师的配置的代码出结果很快;(-est -alpha 1 -beta 0.01 -ntopics 30 -niters 1 -savestep 1 -twords 6 -dir models\casestudy-vi -dfile “success.txt”)
在这里插入图片描述

4.查看结果是在…final.towords.里边查看的。
在这里插入图片描述

或者这样用张老师的直接出结果
在这里插入图片描述
关于eclipse中分词结果呈现的乱码(虽然是utf-8的格式仍乱码),是eclipse中默认gbk打开文件(eclipse一般默认GBK格式的编码,但是有些项目需要UTF-8编码,此时文本就会乱码。解决方法非常简单,右键txt文件,直接修改property,resource中的编码格式为GBK即可。)
即运行成功!!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值