轉載自月光部落格 [ http://www.williamlong.info/ ] - 中文分詞和TF-IDF
(Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。中文分詞是文字挖掘的基礎,對於輸入的一段中文,成功的進行中文分詞,可以達到電腦自動識別語句含義的效果。
TF-IDF(term frequency–inverse document frequency)是一種用於資訊搜尋和資訊挖掘的常用加權技術。在搜尋、文獻分類和其他相關領域有廣泛的應用。
TF-IDF的主要思想是,如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。TF詞頻(Term Frequency)指的是某一個給定的詞語在該檔案中出現的次數。IDF反文件頻率(Inverse Document Frequency)的主要思想是:如果包含詞條的文件越少,IDF越大,則說明詞條具有很好的類別區分能力。
使用TF*IDF可以計算某個關鍵字在某篇文章裡面的重要性,因而識別這篇文章的主要含義,實現計算機讀懂文章的功能。
常見中文分詞開源專案:
:
開發的一套基於詞頻詞典的機械中文分詞引擎,它能將一整段的漢字基本正確的切分成詞。採用的是採集的詞頻詞典,並輔以一定的專有名稱,人名,地名,數字年代等規則識別來達到基本分詞,經小範圍測試大概準確率在 90% ~ 95% 之間,已能基本滿足一些小型搜尋引擎、關鍵字提取等場合運用。45Kb左右的文字切詞時間是0.026秒,大概是1.5MB文字/秒,支援PHP4和PHP 5。
:
這可是最早的中文開源分詞專案之一,ICTCLAS在國內973專家組組織的評測中活動獲得了第一名,在第一屆國際中文處理研究機構SigHan組織的評測中都獲得了多項第一名。ICTCLAS3.0分詞速度單機996KB/s,分詞精度98.45%,API不超過200KB,各種詞典資料壓縮後不到3M.ICTCLAS全部採用C/C++編寫,支援Linux、FreeBSD及Windows系列作業系統,支援C/C++、C#、Delphi、Java等主流的開發語言。
:
Java 提供lucence 介面,僅支援Java語言。
:
一箇中文詞典開源專案,提供一份以漢語拼音為中文輔助的漢英辭典,截至2009年2月8日,已收錄82712個單詞。其詞典可以用於中文分詞使用,而且不存在版權問題。Chrome中文版就是使用的這個詞典進行中文分詞的。
基於VB/ASP的中文分詞
上面的開源專案沒有給予VB和ASP的,這裡提供一個簡單的VB/ASP類,加上詞典之後就可以進行分詞了,注意這個類只供演示,其分詞速度極慢不適合實際應用。
類名為:WordSplit
Private rootTable As String
Private Function GetCount(ByVal s As String) As Long
GetCount = InStr(1, rootTable, s)
End Function
Public Function WordCount(ByVal strString As String, ByVal strGetWord As String) As Long
Dim k
k = Split(strString, strGetWord)
WordCount = UBound(k)
End Function
' 分析輸入的字串,將其切割成一個個的詞語。
' 待切割的字串
'
Public Function ParseChinese(ByVal s As String, ByVal separator As String) As String
Dim lngLength As Long
Dim strTemp As String
Dim ArrayList As String
Dim i, j
ArrayList = ""
lngLength = Len(s)
i = 1
While i < lngLength
strTemp = Mid(s, i, 1)
If GetCount(strTemp) > 1 Then
j = 2
While i + j < lngLength + 1 And GetCount(Mid(s, i, j)) > 0
j = j + 1
Wend
strTemp = Mid(s, i, j - 1)
i = i + j - 2
End If
i = i + 1
'WordAdd (temp)
ArrayList = ArrayList + strTemp + separator
Wend
ParseChinese = ArrayList
End Function
Private Sub Class_Initialize()
Dim fso, templetfile, txtfile
templetfile = App.Path + "ChineseDictionary.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.OpenTextFile(templetfile, 1)
rootTable = txtfile.ReadAll
txtfile.Close
End Sub
呼叫示例:
strInput = "中文分詞指的是將一個漢字序列切分成一個一個單獨的詞。中文分詞是文字挖掘的基礎,對於輸入的一段中文,成功的進行中文分詞,可以達到電腦自動識別語句含義的效果。"
Dim strWordSplit As New WordSplit
strSubject = strWordSplit.ParseChinese(strInput, "|")
arrSubject = Split(strSubject, "|")
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/220284/viewspace-1023486/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中文分詞器,整理自Ai中文分詞AI
- Oracle文件轉載 部落格Oracle
- spring security中文教程講解 轉自 臨遠 部落格Spring
- 中文分詞研究難點-詞語劃分和語言規範中文分詞
- elasticsearch教程--中文分詞器作用和使用Elasticsearch中文分詞
- #Elasticsearch中文分詞器 #IK分詞器 @FDDLCElasticsearch中文分詞
- 中文分詞原理及常用Python中文分詞庫介紹中文分詞Python
- 谷歌開發者中文部落格谷歌
- 【轉載】如何轉發部落格園中的文章
- 中文分詞技術中文分詞
- Python分詞模組推薦:jieba中文分詞PythonJieba中文分詞
- dba和sysdba的區別(轉自“三十而立專欄”部落格)
- Eastmount部落格導讀:專欄系統分類和部落格歸納總結AST
- 11個Java開源中文分詞器使用方法和分詞效果對比Java中文分詞
- hanlp中文智慧分詞自動識別文字提取例項HanLP分詞
- 5 分鐘教你快速掌握 GitHub Actions 自動部署部落格Github
- VuePress 部落格優化之中文錨點跳轉問題Vue優化
- python使用jieba實現中文文件分詞和去停用詞PythonJieba分詞
- 【轉載】Hexo+GitHub構建個人部落格HexoGithub
- 分詞工具Hanlp基於感知機的中文分詞框架HanLP中文分詞框架
- IKAnalyzer 中文分詞的不同版本切詞方式中文分詞
- iOS中文近似度的演算法及中文分詞(結巴分詞)的整合iOS演算法中文分詞
- 批量匯出 CSDN 部落格並轉為 hexo 部落格風格Hexo
- 我的新部落格: http://cuiz.meHTTPUI
- 部落格地址http://space.itpub.net/24496749HTTP
- SCWS PHP 中文簡易分詞PHP分詞
- HanLP中文分詞Lucene外掛HanLP中文分詞
- python 中文分詞包 jiebaPython中文分詞Jieba
- ElasticSearch5.6.1 + 中文分詞(IK)ElasticsearchH5中文分詞
- 分享IKAnalyzer 3.0 中文分詞器中文分詞
- UserProfileService服務未能登入轉載自(sailing的新浪部落格)AI
- 中文搜尋引擎技術揭密:中文分詞中文分詞
- 中文分詞的探索,CRF(條件隨機場)和HMM(隱馬爾可夫模型)用於分詞的對比,以及中文分詞的評估中文分詞CRF條件隨機場HMM隱馬爾可夫模型
- 寫技術部落格那點事-轉載 + 微調
- 【爬蟲工具】下載部落格轉成Markdown的形式爬蟲
- 轉載|如何利用客戶端在itpub發部落格客戶端
- 中文分詞工具之基於字標註法的分詞中文分詞
- Hanlp分詞之CRF中文詞法分析詳解HanLP分詞CRF詞法分析