やろうとしていること
Cloud9環境でRuby on Rails5、Mecab、nattoを使って
自分の作成したアプリ内の記事DBから記事タイトルを取ってきて自動的にタグを生成するためのスクリプトを作ろうとしています。
できていること
現在、一般的なテキストを形態素解析することはできている模様です。
できていないこと
問題は、すでにモデル内に保存されている記事データをすべて取り出し、each文で各要素を取り出し、解析し、タグづけしていくという流れの中の、はじめ一歩である記事データの取り出しからつまづいています。
###エラー文
uninitialized constant News (NameError)
###コード
Ruby
1#/models/mecab.rb 2require "active_record" 3require 'natto' 4 5# 準備体操(一般的なテキストの解析) 6 7 text = 'すもももももももものうち' 8 nm = Natto::MeCab.new 9 nm.parse(text) do |n| 10 puts "#{n.surface}\t#{n.feature}" 11 end 12 13# 本番(自動タグづけへの道のり) 14# Newsモデルから各記事を取ってくる 15 nm2 = Natto::MeCab.new 16 @news = News.all 17
ニュースモデルについて追記します (5/23 18:00)
Ruby
1models/news.rb 2class News < ApplicationRecord 3 4acts_as_taggable 5 6belongs_to :user 7validates :content, length: { maximum: 140 } 8 9end
Ruby
1実行結果 2 3ec2-user:~/environment/abc_app (master) $ ruby app/models/mecab.rb 4すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ 5も 助詞,係助詞,*,*,*,*,も,モ,モ 6もも 名詞,一般,*,*,*,*,もも,モモ,モモ 7も 助詞,係助詞,*,*,*,*,も,モ,モ 8もも 名詞,一般,*,*,*,*,もも,モモ,モモ 9の 助詞,連体化,*,*,*,*,の,ノ,ノ 10うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ 11 BOS/EOS,*,*,*,*,*,*,*,* 12Traceback (most recent call last): 13app/models/mecab.rb:14:in `<main>': uninitialized constant News (NameError)
素人質問ですいません。用語とか誤っているところもあるかと思いますが、
どなたかご教示いただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/23 22:06 編集