質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2178閲覧

辞書データを用いたシステムを作りたい

ehyai

総合スコア43

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

2クリップ

投稿2017/03/11 17:46

###前提・実現したいこと
単語を入力すると、その単語の意味を表示するようなプログラムをC#やJAVAで構築したいと思い、それを実現させるために、Web上に存在する辞書データを利用して、そのデータを参考にして意味を表示させたいと考えております。Webで探してみたら、百科辞書というものが見つかりました。これは、LZHファイルというもので用意されているようなのですが、これを辞書データとして利用できるのではと思いました。
そこで尋ねたいことがあるのですが、C#かJAVAのどちらでもよいので、これらのデータの取り扱い方を教えていただけないでしょうか。もしこれらのデータがC#やJAVAでのプログラミングにおいて利用できないデータであるならば、この他に辞書データとして利用できそうなデータを知っておりましたら、教えていただけないでしょうか。
また、もしよろしければ、簡単なプログラムでいいので、こういうコードの書き方をすればこのデータのこの部分を参考にして表示できる、といったプログラムの書き方も教えてもらえないでしょうか。よろしくお願いします。

vitabrevisarsl1👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/03/11 22:16

百科辞書のサイトを読んでみましたが、管理人はなかなかの難物のようですね。パブリックドメインを標榜しているのに特定組織のアクセスや利用を禁じていたり、リンク承認には十万円の手数料を取っていたり、北方領土は領土と領海で保有する国を分けろと主張していたり、そのような政治的問題を、パブリックドメインを標榜して他者から無償譲渡された著作物を配布するサイトのトップに掲げていたり。規約が管理人の気分でいつどのように変わるか分からないので、利用は慎重になさった方がよろしいかと。
ehyai

2017/03/12 04:44

アドバイスありがとうございます。確かに手数料十万円というのは変ですし、こういうところに政治問題について書かれているのは気になりますね。わかりました。利用する際には気を付けたいと思います。
guest

回答3

0

ベストアンサー

Mac 上の ruby で作ってみました。

3 つのプログラムで構成しています。

  • lzh ファイルを download して、text ファイルをつくる。
  • text ファイルからインデックスをつくる。
  • 指定した単語の説明を表示する。

ruby

1# brew install lha 2# brew install nkf 3 4# lzh ファイルをダウンロードする 5system 'rm -fr lzh' 6system 'mkdir lzh' 7%w[a ka sa ta na ha ma ya ra wa].each do |name| 8 system "curl http://pddlib.v.wol.ne.jp/japanese/#{name}.lzh -o lzh/#{name}.lzh" 9end 10 11# lzh を解凍する 12system 'rm -fr txt' 13system 'mkdir txt' 14Dir.chdir 'txt' 15Dir.glob('../lzh/*.lzh').each do |lzh| 16 system "lha x --archive-kanji-code=sjis --system-kanji-code=utf8 #{lzh}" 17end 18Dir.chdir '..' 19 20# 文字コードを utf8, 改行コードを LF, ファイル名の拡張子を .txt に変更する 21Dir.glob('txt/*').each do |file| 22 system "nkf -wLu #{file} >> 1.txt" 23 system "mv 1.txt #{file}.txt" 24 system "rm -f #{file}" 25end

make_index.rb

ruby

1# require 'json' 2 3index = {} 4prev_key = nil 5Dir.glob('txt/*.txt') do |file| 6 text = IO.readlines(file).map { |line| line.chop } 7 8 text.each_with_index do |line, idx| 9 next if line.length.zero? || "\t- ".index(line[0]) 10 11 key = line.sub(/\A★/, '').sub(/\A\[\d\]/, '') 12 index[prev_key][-1] = "#{index[prev_key][-1]}:#{idx - 1}" unless prev_key.nil? 13 prev_key = key 14 15 index[key] ||= [] 16 index[key] << "#{file}:#{idx}" 17 end 18end 19 # puts JSON.pretty_generate(index) 20 # File.open('index.json', 'w') { |file| JSON.dump(index, file) } 21 File.open('index.txt', 'w') do |file| 22 index.each do |key, val| 23 file.write("#{key}\t#{val.join(' ')}\n") 24 end 25 end

dic.rb

ruby

1INDEX_FILE = 'index.txt'.freeze 2 3def show_pos(item) 4 pos = item.split(':') 5 lines = IO.readlines(pos[0]) 6 s = pos[1].to_i 7 e = pos.size == 3 ? pos[2].to_i : lines.size - 1 8 puts '------------------' 9 puts lines[s..e] 10end 11 12return if ARGV.size == 0 13 14key = ARGV[0] + "\t" 15results = File.readlines(INDEX_FILE).select { |line| line.start_with?(key) } 16results.each do |line| 17 line.split(/\t| /)[1..-1].each do |items| 18 items.split(' ').each do |pos| 19 show_pos(pos) 20 end 21 end 22end

実行例

$ ruby dic.rb "あいあい" ------------------ ★あいあい 【アイアイ】 ◇[英]aye-aye、[学]Daubentonia madagascariensis ○(1)[哺]霊長目(Primates)アイアイ科(Daubentoniidae)のサ ル。 マダガスカル島にのみ生息。 「指猿(ユビザル)」とも呼ぶ。 ◎メガネザル(眼鏡猿)・キツネザル(狐猿)・ロリス(loris)な どの近縁種。 ○(2)[楽]相田裕美作詞、宇野誠一郎作曲の童謡。 ------------------ あいあい 【娃娃】 ◇[中]wawa(ワーワ) ○(1)(中国語で)赤ん坊。 ○(2)(中国語で)人形。 ◎洋娃娃(yangwawa):バービー人形。

投稿2017/03/12 02:10

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehyai

2017/03/12 04:41

回答してくださってありがとうございます。丁寧なプログラムのおかげで非常にわかりやすいです。もう一つだけ聞きたいことがあるのですが、自分はWindowsで、またrubyを利用したことはないのですが、C#やJAVAでも、そちらの教えていただいたようなやり方で、文法をそれぞれの様式に直してコードを書いたら機能しますでしょうか。
katoy

2017/03/12 06:38

同様の処理を java や c または別の言語で書くことも可能と思います。 mac なので、日本語コード、改行コードを変換してますが、windows 上なら、変換は不要かもしれません。 テキストファイルをそのまま利用して検索、表示をしていますが、 Dtabase (Mysql, sqlite3 など ...) に入れて検索するようにするのも良いと思います。 郵便番号データをつかって、住所-郵便番号を検索する例が web 上でいくつか見つかります。 そういったものが、どのようにデータを扱っているかも参考になるとおもいます。 https://github.com/taroyabuki/webbook2/tree/master/src/09
ehyai

2017/03/13 18:43

再び回答してくださってありがとうございます。まだ解決したわけではありませんが、ベストアンサーに選ばせていただきました。そちらに教えていただいたコードをC#やJAVAで書けるか、試してみたいと思います。また、テキストファイルをそのまま利用するか、データベースを用いるかどうかはもう少し考えてみます。あと、データの扱い方に関して参考になりそうな例までも紹介してくださってありがとうございます。自分のシステムに活用できそうかはまだわかりませんが、心強いです。
guest

0

百科辞書、なかなか面白いサイトですね。

さて、このサイトで配布しているファイルを利用してということでいいでしょうか。まず、配布されているLZH形式のファイルですが、サイトの説明にもある通り圧縮ファイルです(今時LZH形式を使うのも珍しいですが)。なので、まずはこのファイルを解凍しなければなりません。各種圧縮形式に対応したDLLが用意されているので、それらを利用して解凍すればよろしいでしょう。
続いて解凍して展開されたファイルを解析して辞書データにするという処理になると思います。中を見たところ、独特の形式(と言うか、本当に見た目重視に編集されている)なので、どういう風にしてデータに起こすかというのは考える必要があります。
後は、このデータをどう持つかを考える必要がありますかね(データベース化するかとか、独自の形式のファイルにするかとか)。

基本的には「テキストファイルを読み込んで、そのデータを加工する」になると思いますので、いかなる言語でもプログラムは組めると思います。

投稿2017/03/11 18:24

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehyai

2017/03/12 04:35

回答してくださってありがとうございます。LZHファイルをダウンロードしてみました。このファイルを、右クリックからの解凍を行うと、あ、あいか、あいた...といったファイルがありました。これらはInternet Explorerやメモ帳で開くと、単語とその意味が載せられていました。DLLというものについてよく知らないのですが、これで解凍は成功したといってよろしい感じでしょうか。あと、データベース化というのは、エクセルを利用して作成する感じでよろしいでしょうか。再び質問、申し訳ありません。
archiver

2017/03/12 14:27

DLLとはある機能(今回で言うならば、圧縮ファイルの解凍)を他のプログラムでも利用できるようにまとめたファイルです(「Dynamic Link Library」の略です)。これを利用することで、圧縮ファイルの解凍部分を新規に作ること無く、プログラムに組み込めるようになります。 ファイルの解凍と中のファイルの閲覧はできたようですね。 データベース化ですが、このファイル(群)自体がある意味データベースですが、更に質問者さんの作ろうとしているプログラムで扱いやすくするといった意味で挙げました。エクセルのような表形式をイメージしてもらうでもいいと思います(本来なら、MSオフィスで言うならば、Accessがデータベースソフトですが)が、katoyさんが挙げてくださったMySQLやSQLite3と言ったデータベースソフトを利用するのも手です。 (どちらかと言うと、後者ですかね。エクセルでもデータ作成はできますが)
ehyai

2017/03/13 18:44

再び回答してくださってありがとうございます。そちらの丁寧な説明のおかげでDLLについて理解できました。エクセルだけでなく、MySQLやSQLite3などのデータベースソフトというものがあったのですね。データベース化を行うことになった場合は参考にしてみたいと思います。
guest

0

Ruby

1#encoding : utf-8 2 3def index(path) 4 Dir.glob("#{path}/*").each do |folder| 5 Dir.glob("#{folder}/*.txt").each do |file| 6 array = [] 7 File.open(file) do |f| 8 f.each_line do |line| 9 array << line 10 end 11 end 12 array.shift(5) 13 array.pop 14 str = "" 15 array.each do |element| 16 element = element.gsub("\n", "<-|->") 17 unless element.include?("\t") 18 element = "\n" + element 19 end 20 str += element 21 end 22 str.slice!(0) 23 File.open("index.txt", "a") do |output| 24 output.puts(str) 25 end 26 end 27 end 28end 29 30def search(path, word) 31 File.open(path) do |f| 32 f.each_line do |line| 33 comp = 0 34 line.gsub!("<-|->", "\n").each_line.with_index do |l, i| 35 if i == 0 && l.include?(word.encode("windows-31J")) 36 comp = 1 37 puts "-----------------------------" 38 end 39 if comp == 1 40 puts l 41 end 42 end 43 end 44 end 45end 46 47print "検索する文字列を入力してください:" 48input = gets.chomp 49search("index.txt", input)
検索する文字列を入力してください:なぽりたん ----------------------------- [1]なぽりたん 【ナポリタン】 ◇[フ]napolitain ○(1)[料]トマトを使ってイタリアの都市ナポリ風に味付けを した料理。 ○(2)[料](特に)スパゲティ(spaghetti)をベーコン・マッシュ ルームなどと炒(イタ)めて、トマトピューレをからめた料理。 参照⇒なぽれたーに(ナポレターニ)(2) ----------------------------- [2]なぽりたん 【ナポリタン】 ◇[英]Neapolitan(ニーポリタン) ○(1)[形]ナポリの。 ○(2)[名]ナポリの人。ナポリ出身の人・ナポリ在住の人。 イタリア語では男性を「ナポレターノ(napoletano)」、女性を 「ナポレターナ(napoletana)」と呼ぶ。 ○(3)[食](neapolitan)⇒なぽりたんあいすくりーむ(ナポリタ ンアイスクリーム,ナポリタン・アイスクリーム) ----------------------------- なぽりたんあいすくりーむ 【ナポリタンアイスクリーム】 【ナポリタン・アイスクリーム】 ◇[英]neapolitan ice cream ○[食]いろいろな味と色をつけて層状にしたアイスクリーム。 参照⇒りっぷる(リップル)(4)

C#

1using System; 2 3namespace index1 4{ 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 Console.Write("検索する文字列を入力してください:"); 10 string word = Console.ReadLine(); 11 12 System.IO.StreamReader sr = new System.IO.StreamReader("index.txt", System.Text.Encoding.Default); 13 14 15 while(sr.Peek() >= 0) 16 { 17 18 string line = sr.ReadLine().Replace("<-|->", "\n").ToString(); 19 if (line.Contains(word)) 20 { 21 Console.WriteLine("-----------------------------"); 22 Console.WriteLine(line); 23 } 24 } 25 sr.Close(); 26 Console.ReadKey(); 27 28 } 29 } 30} 31

改良版

Ruby

1def search(word) 2 word = word.chomp.encode("windows-31J") 3 array = [] 4 File.open("index.txt", "r") do |f| 5 f.each_line do |line| 6 flag = 0 7 line.gsub("<-|->", "\n").each_line.with_index do |element, i| 8 if i == 0 && element =~ /\A(#{"★".encode("windows-31J")}|\[\d{1}\])#{word}\Z/ 9 flag = 1 10 end 11 end 12 if flag == 1 13 array << line.gsub("<-|->", "\n") 14 end 15 end 16 end 17 return array 18end 19 20search(ARGV[0]).each do |s| 21 puts "-----------------------------" 22 puts s 23end

実行結果例

----------------------------- [1]なぽりたん 【ナポリタン】 ◇[フ]napolitain ○(1)[料]トマトを使ってイタリアの都市ナポリ風に味付けを した料理。 ○(2)[料](特に)スパゲティ(spaghetti)をベーコン・マッシュ ルームなどと炒(イタ)めて、トマトピューレをからめた料理。  参照⇒なぽれたーに(ナポレターニ)(2) ----------------------------- [2]なぽりたん 【ナポリタン】 ◇[英]Neapolitan(ニーポリタン) ○(1)[形]ナポリの。 ○(2)[名]ナポリの人。ナポリ出身の人・ナポリ在住の人。  イタリア語では男性を「ナポレターノ(napoletano)」、女性を 「ナポレターナ(napoletana)」と呼ぶ。 ○(3)[食](neapolitan)⇒なぽりたんあいすくりーむ(ナポリタ ンアイスクリーム,ナポリタン・アイスクリーム)

素人ながら考えてみました。
文字列に特定の語が含まれるかだけで表示しているので微妙です。
Lhaplusで解凍してRubyで加工しました。
加工の内容
1.「index」というフォルダを1つ作ってその中に解凍してできたフォルダをいれる。
2.「index」の中にあるファイルの拡張子を全て「.txt」にする。
C#はこちらのサイトを参考にしました。
StreamReader でファイルを 1 行ずつ読み込む
文字列に特定の文字列が含まれているかを調べるには?(Contains編)[2.0のみ、C#、VB]
##補足

Ruby

1def index(path) #この処理の名前。何でもよい。 2 Dir.glob("#{path}/*").each do |folder| #indexフォルダの中にあるフォルダを全て取得して配列にする。できた配列から1つずつ要素を取り出してfolderに入れる。 3 Dir.glob("#{folder}/*.txt").each do |file| #folderの中にあるテキストファイルを全て取得して配列にする。できた配列から1つずつ要素を取り出してfileに入れる。 4 array = [] #配列を用意。 5 File.open(file) do |f| #fileを開きます。 6 f.each_line do |line| #fileを一行ずつ読み込んでlineに入れる。 7 array << line #lineをarrayに入れる。(文字コードのエラーでsplitが使えなかったのでこんなことをしています。) 8 end 9 end 10 array.shift(5) #配列の前から5つまでの要素を削除(いらないので) 11 array.pop #配列の最後の要素を削除(いらないので) 12 str = "" #文字列を入れるのに使う。 13 array.each do |element| #arrayの中身を一つずつ取り出してelementに入れる。 14 element = element.gsub("\n", "<-|->") #elementの文字をgsubで置き換える。(改行文字を"<-|->"に置き換えている。この文字列に特に意味はない。) 15 unless element.include?("\t") #elementが改行文字を含まない場合は(unlessはifの逆の意味 「if a != 1」は「unless a == 1」と同じ意味) 16 element = "\n" + element #elementの先頭に改行文字を足す。(こうなる場合は項目の最初だけ) 17 end 18 str += element #strにelementを足す。 19 end 20 str.slice!(0) #strの先頭の改行文字を取り除く。 21 File.open("index.txt", "a") do |output| #index.txtを開く/作る 22 output.puts(str) #index.txtにstrの内容を書き込む。 23 end 24 end 25 end 26end 27 28=begin 29簡単に言うとindexフォルダの中にあるテキストファイルをすべて連結した 301つのテキストファイルを作るということをしている。 31=end

忘れていましたが、「def index」を使う前に

Ruby

1Dir.glob("index/*").each do |folder| 2 Dir.glob("#{folder}/*").each do |file| 3 File.rename(file, "#{file}.txt") 4 end 5end

みたいな感じで「index」フォルダの中にある拡張子のない
テキストファイルに拡張子をつけるということをしていました。

投稿2017/03/14 17:35

編集2017/03/20 18:26
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehyai

2017/03/16 18:38

回答してくださってありがとうございます。C#で百貨辞書のデータを利用したいと考えていたので、C#のコードも教えていただいて、本当にありがたいです。少しだけ聞きたいことがあるのですが、よろしいでしょうか。自分でindexフォルダを作り、その中に解凍してできたフォルダを全部入れるというのはわかりました。解凍してできたフォルダは、例えばあ行の場合「a」という名前のフォルダがあり、その中に「あ」「あいか」「あいた」...といったフォルダがあります。indexフォルダに入れるのは、「a」のフォルダごと入れるのか、それとも「あ」「あいか」「あいた」の方のフォルダだけを入れるのか、どちらでしょうか。また、拡張子を「.txt」に変更するのは、「あ」「あいか」「あいた」の方でよろしいでしょうか。よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/03/18 07:29 編集

ローマ字になっているフォルダごと入れてください。 「あ」「あいか」「あいた」の方の拡張子を「.txt」に変更します。
ehyai

2017/03/19 20:16

ありがとうございます。indexフォルダを作成した後、デバッグを実行してみたところ、「System.IO.StreamReader sr = new System.IO.StreamReader("index.txt", System.Text.Encoding.Default);」のところでエラーが発生してしまい、「FileNotFoundExceptionはハンドルされませんでした。」と表示されます。おそらくシステムがindexフォルダが見つけられないために、このようなエラーが発生してしまうのだと思われます。indexフォルダをどこに置けばよいのか検討しているところですが、現時点ではわかりかねない状態ですね。それとも、別の部分に問題があったりするのでしょうか。
退会済みユーザー

退会済みユーザー

2017/03/20 15:40 編集

私の説明が不味くてすみません。 1.indexフォルダを作る。 2.このフォルダをRubyの「def index」を使って加工して、「index.txt」を作る。 3.「index.txt」を対象にRubyの「def search」やC#のプログラムを使って検索を行う。 こういった流れになっています。 現在は1ができている状態で、まだ「index.txt」が存在しないのでehyai様がおっしゃる エラーが発生しています。正常なことなのでご安心ください。 Rubyのプログラムを動かすのは手間だと思うのでこちらに加工済みのファイルを用意しました。 使用については自己責任でお願いします。 https://drive.google.com/open?id=0B5ATtnO9WMT0RkhVS1BPT0FUWjA Rubyの「def index」については改めて何をやっているのかコメントを書かせていただきました。
ehyai

2017/03/24 15:50

私のために加工済みのファイルまで用意してくださって、ありがとうございます。返事が遅れてしまい、申し訳ありません。上の補足のRubyのコードは、上がindex.txtにindexフォルダ内のファイルの内容を書き込むコード、下がindexフォルダ内のファイルにtxtの拡張子を付けるコードということですね。つまり、h_aさんの用意してくださった加工済みのindex.txtファイルがあれば、補足の二つのコードは書かなくてよいという感じでよろしいでしょうか。ただ、indexファイルにindex.txtを入れて実行してみたのですが、やはり「FileNotFoundExceptionはハンドルされませんでした。」というエラーが表示されてしまいます。indexフォルダはCファイルの直下に置いて試したのですが、これが正しくindex.txtを読み込めない理由なのでしょうか。デスクトップにindexフォルダを置いたり、index.txtのみを置いたりして試したのですが、上手くいきませんでした。あと、もう一つだけ尋ねさせていただきたいことがあるのですが、C#のコードと改良版とあるRubyのコードの内容は同じでよろしかったですよね...?
退会済みユーザー

退会済みユーザー

2017/03/24 19:35 編集

1.補足の2つのコードは書かなくてよいか?  その通りです。書かなくて大丈夫です。 2.エラーがでて動きません。  私はVisualStudioを使っているのでそれ以外の状況については分かりませんが、VisualStudio2017の場合、Visual Studio 2017->Projects->(対象のプロジェクトのフォルダ)->(対処のプロジェクトと同じ名前のフォルダ)->bin->debug(もしくはrelease)フォルダの中にindex.txtを入れてもらえば動くと思います。 とりあえず、前と同じ https://drive.google.com/open?id=0B5ATtnO9WMT0RkhVS1BPT0FUWjA このURLにコンパイルしたC#のプログラムを入れてみました。 3.C#のコードとRubyの改良版のコードは同じ内容(同じ動きをする)か  別物です。(異なった結果になります。)  index.txtには  「なぽりたん<-|->\tぱすたの一種<-|->\t関連=>麵料理, らーめん」  みたいな感じで各単語が記されています。  今、検索したい文字列が「らーめん」だったとします。C#のプログラムは「なぽりたん<-|->\tぱすたの一種<-|->\t関連=>麵料理, らーめん」という文字列を対象に「らーめん」が含まれるかを調べます。Rubyの改良版のほうは、「なぽりたん」という文字列を対象に「らーめん」が含まれるかを調べます。C#の方は単語の説明に調べたい言葉があった場合も表示してしまいます。(containsで調べているだけなので「あ」とか「み」など1文字の場合はその1文字を含む全単語を表示します。) 最後に今更ですが私はC#の勉強を最近始めたばかりなので現在は分からないことのほうが多い状況です。 ですのであんまり期待しないでくださいね。 index.txtを使うと文字コードのエラーが発生します。 私のRubyのコードやC#のコードはエラーを回避する書き方がしてあるので そのまま試すだけなら大丈夫だと思います。 このエラーを解決する方法は調査中です。
ehyai

2017/03/26 16:44

index.txtをプロジェクトの中に入れる必要があったのですね。h_aさんのおかげで、エラーなく、入力した単語の意味をindex.txt中の百科辞書のデータを用いて表示させることができました。h_aさんのおっしゃる通り、確かに説明に入力した言葉の書かれてある単語まで表示されてしまいますし、「森」などの短い単語を入力して検索した場合はあまりに大量の「説明文に森を含んだ」単語が表示されるためにエラーが発生してしまいますね。h_aさんのRuby改良版のように、本当に検索したい単語のみを表示するプログラムへと改善できるよう努力したいと思います。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問