最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

ASP中文分词和TF-IDF技巧

日期:06-22    来源:中国设计秀    作者:cnwebshow.com

  中文分词(Chinese word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。Ehs中国设计秀

  TF-IDF(term frequency–inverse document frequency)是一种用于信息搜索和信息挖掘的常用加权技术。在搜索、文献分类和其他相关领域有广泛的应用。Ehs中国设计秀

  TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF词频(Term Frequency)指的是某一个给定的词语在该文件中出现的次数。IDF反文档频率(Inverse Document Frequency)的主要思想是:如果包含词条的文档越少,IDF越大,则说明词条具有很好的类别区分能力。Ehs中国设计秀

  使用TF*IDF可以计算某个关键字在某篇文章里面的重要性,因而识别这篇文章的主要含义,实现计算机读懂文章的功能。Ehs中国设计秀

  常见中文分词开源项目:Ehs中国设计秀

  SCWS:Ehs中国设计秀

  Hightman开发的一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。采用的是采集的词频词典,并辅以一定的专有名称,人名,地名,数字年代等规则识别来达到基本分词,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些小型搜索引擎、关键字提取等场合运用。45Kb左右的文本切词时间是0.026秒,大概是1.5MB文本/秒,支持php4和PHP 5。Ehs中国设计秀

  ICTCLAS:  Ehs中国设计秀

  这可是最早的中文开源分词项目之一,ICTCLAS在国内973专家组组织的评测中活动获得了第一名,在第一届国际中文处理研究机构SigHan组织的评测中都获得了多项第一名。ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M.ICTCLAS全部采用C/C++编写,支持linux、FreeBSD及Windows系列操作系统,支持C/C++、C#、Delphi、java等主流的开发语言。Ehs中国设计秀

  庖丁解牛分词:Ehs中国设计秀

  Java 提供lucence 接口,仅支持Java语言。Ehs中国设计秀

  CC-CEDICT:Ehs中国设计秀

  一个中文词典开源项目,提供一份以汉语拼音为中文辅助的汉英辞典,截至2009年2月8日,已收录82712个单词。其词典可以用于中文分词使用,而且不存在版权问题。Chrome中文版就是使用的这个词典进行中文分词的。Ehs中国设计秀

  基于VB/asp的中文分词Ehs中国设计秀

  上面的开源项目没有给予VB和ASP的,这里提供一个简单的VB/ASP类,加上词典之后就可以进行分词了,注意这个类只供演示,其分词速度极慢不适合实际应用。Ehs中国设计秀

  类名为:wordSplitEhs中国设计秀

PRivate rootTable As StringEhs中国设计秀
http://bizhi.knowsky.com/Ehs中国设计秀
Private Function GetCount(ByVal s As String) As LongEhs中国设计秀
    GetCount = InStr(1, rootTable, s)Ehs中国设计秀
End FunctionEhs中国设计秀

Public Function wordCount(ByVal strString As String, ByVal strGetword As String) As LongEhs中国设计秀
    Dim kEhs中国设计秀
    k = Split(strString, strGetword)Ehs中国设计秀
    wordCount = UBound(k)Ehs中国设计秀
End FunctionEhs中国设计秀

Ehs中国设计秀
' 分析输入的字符串,将其切割成一个个的词语。Ehs中国设计秀
' <param name="s">待切割的字符串</param>Ehs中国设计秀
' <returns>所切割得到的中文词语数组</returns>Ehs中国设计秀

Public Function ParseChinese(ByVal s As String, ByVal separator As String) As StringEhs中国设计秀
    Dim lngLength As LongEhs中国设计秀
    Dim strTemp As StringEhs中国设计秀
    Dim ArrayList As StringEhs中国设计秀
    Dim i, jEhs中国设计秀

    ArrayList = ""Ehs中国设计秀
    lngLength = Len(s)Ehs中国设计秀
    i = 1Ehs中国设计秀
    While i < lngLengthEhs中国设计秀
        strTemp = Mid(s, i, 1)Ehs中国设计秀
        If GetCount(strTemp) > 1 ThenEhs中国设计秀
            j = 2Ehs中国设计秀
            While i + j < lngLength + 1 And GetCount(Mid(s, i, j)) > 0Ehs中国设计秀
                j = j + 1Ehs中国设计秀
            WendEhs中国设计秀
            strTemp = Mid(s, i, j - 1)Ehs中国设计秀
            i = i + j - 2Ehs中国设计秀
        End IfEhs中国设计秀
        i = i + 1Ehs中国设计秀
        'wordAdd (temp)Ehs中国设计秀
        ArrayList = ArrayList + strTemp + separatorEhs中国设计秀
    WendEhs中国设计秀
    ParseChinese = ArrayListEhs中国设计秀

End FunctionEhs中国设计秀

Private Sub Class_Initialize()Ehs中国设计秀
    Dim fso, templetfile, txtfileEhs中国设计秀
    templetfile = App.Path + "ChineseDictionary.txt"Ehs中国设计秀
    Set fso = CreateObject("Scripting.FileSystemObject")Ehs中国设计秀
    Set txtfile = fso.OpenTextFile(templetfile, 1)Ehs中国设计秀
    rootTable = txtfile.ReadAllEhs中国设计秀
    txtfile.CloseEhs中国设计秀
End SubEhs中国设计秀

  调用示例:Ehs中国设计秀

    strInput = "中文分词指的是将一个汉字序列切分成一个一个单独的词。

本文引用地址:/bc/article_46231.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明