2012-04-01 120 views
2

我有一堆存儲在數據庫中的推文,現在我需要創建一個搜索引擎來查找特定的推文,所以我試圖創建所有推文的反向索引。python中的多語言解析

這樣的過程需要分析推文,對於大多數語言而言,推文可能很簡單:您只需在空格中分解句子。但對於一些人們通常不使用空格來分隔單詞的語言,如中文和日語,它會變得單調乏味。最糟糕的是,鳴叫的顯著數量多語言,例如下面的鳴叫:

青空だ♪(@成田國際空港第1ターミナル(成田國際機場 - 1號航站樓)W/3人) http://t.co/eqjJSxTX

在這種情況下,我需要使用Python上述字符串轉換成一個元組:

( 「青」, 「空」, 「だ」, 「♪」,「(@ 「 」成「, 」田「, 」國「, 」際「, 」空「, 」港「, 」「, 」第「, 」1「, 」タ「, 」ー「, 」ミ「,」ナ 「 」ル「, 」(「, 」成田「,」 在國際「,」機場「,」 - 「,」終端「,」1「,」w /「,」3「,」其他「),」http://t.co/eqjJSxTX「)

也就是說,對於日文字符,每個元素應該只包含一個字符,但對於非日語字符,解析字符串應該用空格。

那麼是否有任何可用的庫來執行此功能,或者如果這樣的庫不存在,什麼是實現這個功能的相對簡單的方法?

謝謝大家。

+0

爲什麼'('開始'成田'得到它是一個字符串,但結束'其他'不是? – aaronasterling 2012-04-01 05:20:49

+0

只是一些noob spitballing在這裏,不會編解碼器幫助你將它們轉換爲unicode,然後你可以處理他們的禮儀? – Mellkor 2012-04-01 05:44:18

回答

-1

嘗試regex

words = regex.findall(ur'([\p{Han}\p{Katakana}]|[\p{Latin}\p{Number}]+)', tweet) 

(假定 「鳴叫」,以是Unicode,如果不是,首先將其轉換)。