2015-11-04 3 views
0

Я пытаюсь выполнить ngram мой файл базы данных. Он работает, когда я 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.

Смежные вопросы