2つのファイル内には
今テレビで町田特集やってる!
【ひみつのアラシちゃん】
麺は微妙だがちゃあしゅう凄く美味しい理かもねー
スペインバル・ジローナ・虎ノ門ヒルズが取り上げられました
このような形でそれぞれ一文ずつ形態素解析し、単語ごとに配列にいれたいのですが、
これを実行すると
15: [BUG] Segmentation fault at 0x00000000000000
ruby 2.1.8p440 (2015-12-16 revision 53160) [amd64-freebsd10]
このようなエラーがでます。まったくわからないので困っています。
お願いします。
ruby
1#encoding: utf-8 2#形態素解析 3#名詞抽出 4 5require "MeCab" 6require "kconv" 7 8require "nkf" 9########### 10def hinsi(sentence) 11 mecab = MeCab::Tagger.new 12 node = mecab.parseToNode(sentence) 13 word = [] 14 begin 15 node = node.next 16 data="#{node.surface.toutf8},#{node.feature.toutf8}" 17 if data.split(",")[1].toutf8 == "名詞" then 18 if data.split(",")[2].toutf8 =~ /一般|固有名詞/ then 19 word.push("#{node.surface.toutf8}") 20 end 21 end 22 end until node.next.feature.include?("BOS/EOS") 23 24return word 25end 26############## 27#ファイル入力 28def read_data_file(filename) 29 sentence=[] 30 f=File.open("#{filename}","r:UTF-8") 31 f.each_line{|data| 32 sentence.push(data) 33 } 34k= sentence.length 35t=[] 36for j in 0..k-1 do 37 t[j]=NKF.nkf("-Xw",sentence[j]) 38end 39 40t.uniq! 41 42return t 43end 44 45#ファイル数 46si=[] 47 si[1]="r1.txt" 48chan=[] 49 chan[1]="r2.txt" 50 51############## 52 53 54cosr1=[] 55 56d1=[] 57d2=[] 58 59 d1 = read_data_file(si[1])#si[1]が1つのファイル内 60 d2= read_data_file(chan[1])#d1が全文章d1[]が一文 61 dlength=d1.length 62 for g in 0..dlength do 63 cosr1[g]=hinsi(d1[g]) 64 end 65 puts d1 66 puts cosr1,"\n" 67 68 69
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。