2015-11-04 16 views
0

我想ngram我的數據庫文件。它工作時,我解析一個字符串,但我不知道如何做我的數據庫文件相同。 我有下面的代碼至今:ngram在Ruby中的數據庫文件

(希望我在正確的軌道)

require 'ngram' 
require 'sqlite3' 

ngram = NGram.new({ 
    :size => 2, 
    :word_separator => " ", 
    :padchar => "_" 
}) 

p ngram.parse('something') 
# => ["__", "_t", "te", "es", "st", "t_", "__"] 
p ngram.parse('test phrase') 

db = SQLite3::Database.new("sample.db") #opens db 
#ngram sample.db 

幫助非常感謝!

回答

0

github code of ngram gem'sparse方法:

def parse(phrase) 
    words = phrase.split(@separator) 
    if words.length == 1 
     process(phrase) 
    else 
     words.map { |w| process(w) } 
    end 
end 

因此,它期望得到一個字符串對象,以便它可以在其上調用String#split。這就是爲什麼它與您的第一個示例一起使用時,您將字符串作爲參數傳遞給ngram.parse方法。

我不完全確定你想在這裏完成什麼,但只要你傳遞一個字符串到ngram.parse方法,它就可以工作。或者,至少應通過一個對split方法做出響應的參數。