zoukankan      html  css  js  c++  java
  • 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)

     
    关于本项目中使用到的庖丁分词的总结:
     
    Paoding 详细介绍

    庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。 Paoding中文分词追求分词的高效率和用户良好体验。

    Paoding's Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。

    高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。

    采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。

    能够对未知的词汇进行合理解析

    1.  从网上下载了一个庖丁解牛中文分词工具压缩包,放入D:SoftwarePackage中。解压D:SoftwarePackage中的paoding-analysis-2.0.4-beta压缩包到文件夹D:softwarepaoding-analysis-2.0.4-beta中。

    2.  新建Java工程PaodingAnalysisTest,在工程下新建文件夹lib,将解压后文件里面的paoding-analysis.jar以及lib目录下的commons-logging.jar,lucene-analyzer-2.2.0.jar,lucene-core-2.2.0.jar四个文件拷贝到lib目录下,在这里需要修改下paoding-analysis.jar里面的内容,用解压工具打开paoding-analysis.jar,修改paoding-dic-home.properties里面的内容,将#paoding.dic.home=dic修改成paoding.dic.home=E://WorkSpace//data//dic(此处路径可根据字典存放的位置进行相应更改),保存即可。

    3.  右键单击工程->Properties->Java Build Path,在右侧选中第三个标签Libraries,点击Add JARs…,导入上述四个包;再选择第四个标签Order and Export,勾选上这四个包,点击OK按钮。

    4.  然后创建一个主类,编写测试小程序(此程序是从网上copy过来的)

    import java.io.*;

    import org.apache.lucene.analysis.Analyzer;

    import org.apache.lucene.analysis.Token;

    import org.apache.lucene.analysis.TokenStream;

    import net.paoding.analysis.analyzer.PaodingAnalyzer;

    public class FenciTest{

    /**

         * @param args

     */

    public static voidmain(String[] args) {

    // TODOAuto-generated method stub

         Analyzeranalyzer=new PaodingAnalyzer();

         StringdocText=null;

         Filefile=new File("E:\WorkSpace\data\FenciTest1.txt");

         docText=readText(file);

         TokenStreamtokenStream=analyzer.tokenStream(docText, newStringReader(docText));

         try{

             Tokent;

             //System.out.println(docText);

             while((t=tokenStream.next())!=null){

                 System.out.println(t);

             }

            }catch(IOExceptione){

             e.printStackTrace();

         }

    }

        private static StringreadText(File file) {

            // TODOAuto-generated method stub

            String text=null;

            try{

                    InputStreamReaderread1=new InputStreamReader(newFileInputStream(file),"GBK");

                BufferedReaderbr1=new BufferedReader(read1);

                StringBufferbuff1=new StringBuffer();

                while((text=br1.readLine())!=null){

                    buff1.append(text+"/r/n");

                }

                br1.close();

                text=buff1.toString();         

            }catch(FileNotFoundExceptione){

                System.out.println(e);

            }catch(IOExceptione){

                System.out.println(e);

            }

            return text;

        }

    }

    如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过 支付宝 捐赠。我会努力写出更好的文章。 
    (捐赠不显示捐赠者的个人信息,如需要,请注明您的联系方式) 
    Thank you for your kindly donation!!

     

  • 相关阅读:
    数据库常用连接字符串(网址)
    WPF布局(2)控件拖动
    TreeView templete(code project)
    寄宿(host)和应用程序域(appdomain)
    C#DSN操作
    WPF布局(3)坐标(转)
    C#注册表操作
    程序集加载与反射
    关于RichTextBox 及 RTF格式文件的保存
    Ajax实现不刷屏的前提下实现页面定时刷新
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/6888487.html
Copyright © 2011-2022 走看看