diff --git a/cafe.csv b/cafe.csv new file mode 100644 index 0000000..9a28cb9 --- /dev/null +++ b/cafe.csv @@ -0,0 +1,7 @@ +品物,価格,生産地 +りんご,200,青森 +さくらんぼ,500,山形 +みかん,100,愛媛 +もも,1000,福島 +バナナ,300,沖縄 +ぶどう,700,sakata diff --git a/cafe.rb b/cafe.rb new file mode 100644 index 0000000..9b84433 --- /dev/null +++ b/cafe.rb @@ -0,0 +1,37 @@ +#!/usr/koeki/bin/ruby +#-*-coding: utf-8-*- + +require 'csv' +data = CSV.read("cafe.csv", headers: true) +while true + puts "酒田市のカフェについてのページだよ!" + puts "何を知りたい?" + puts "1 カフェの場所" + puts "2 カフェ近くのバス停(るんるんバス)" + puts "0 終了" + print("番号を選んでね!:") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + n=0 + data.each{|row| + printf("%d %s: %sが有名のカフェだよ\n",n+=1, row["店名"],row["人気メニュー"]) + printf("住所は、%s。電話番号は、%s。\n", row["住所"],row["電話番号"]) + print("-------------------------------------------------------------\n")} + elsif input == 2 then + s=0 + data.each{|row| + printf("%d %s \n",s+=1,row["店名"])} + print("どのバス停が知りたい?(番号で答えてね):") + num = gets.to_i-1 + if num >= 0 && num < data.length + printf("%sに近いバス停は、 %sです\n", data[num]["店名"],data[num]["バス停"]) + printf("そのバス停は%sのバス線にあります\n", data[num]["バス線名"]) + print("------------------------------------------------------\n") + end + else + print("0〜2から選んでね\n") + end +end + diff --git a/fruits.csv b/fruits.csv new file mode 100644 index 0000000..9a28cb9 --- /dev/null +++ b/fruits.csv @@ -0,0 +1,7 @@ +品物,価格,生産地 +りんご,200,青森 +さくらんぼ,500,山形 +みかん,100,愛媛 +もも,1000,福島 +バナナ,300,沖縄 +ぶどう,700,sakata diff --git a/fruits.rb b/fruits.rb new file mode 100644 index 0000000..0630c12 --- /dev/null +++ b/fruits.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 +Encoding.default_external = "utf-8" # CSVファイルがutf-8のとき +require "csv" +data = CSV.read("fruits.csv",headers: true) + +data.each{|row| + printf("%sは、%d円で生産地は%sです\n", + row["品物"],row["価格"],row["生産地"])} + + + diff --git a/kensaku.csv b/kensaku.csv new file mode 100644 index 0000000..dd1818e --- /dev/null +++ b/kensaku.csv @@ -0,0 +1,6 @@ +name,gakko,gakunen,kozukai +公益太郎,三川八中,2,2000 +飯森花子,余目百中,1,4000 +鶴岡一人,タキタロウ小,4,200 +鶴岡二子,タキタロウ小,2,300 +佐藤凛佳,丸池小,6,900 diff --git a/kensaku.rb b/kensaku.rb new file mode 100644 index 0000000..fa29cf1 --- /dev/null +++ b/kensaku.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +#coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers: true) +data.each do |row| + puts row['moji'] +end diff --git a/kensaku1.rb b/kensaku1.rb new file mode 100644 index 0000000..7ddaf3a --- /dev/null +++ b/kensaku1.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers:true) +data.each do |row| + if /i/ =~ row['moji'] + puts row['moji'] + end +end diff --git a/kensaku2.rb b/kensaku2.rb new file mode 100644 index 0000000..db220f4 --- /dev/null +++ b/kensaku2.rb @@ -0,0 +1,31 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +require 'csv' +data = CSV.read("kensaku.csv", headers: true) + +puts "学校で探す:1" +puts "金額で探す:2" +print "どれにしますか:" +sel = gets.to_i +if sel == 1 + print "探したい学校名を入れてください:" + ptn = Regexp.new(gets.chomp) + data.each do |row| + if ptn =~ row["gakko"] + printf("%sさんは%s%s年です\n", row["name"], row["gakko"], row["gakunen"]) + end + end + +elsif sel == 2 + print "絞り込みたい金額を入れてください:" + gaku = gets.to_i + data.each do |row| + if gaku < row["kozukai"].to_i + printf("%sさんは%d円もらっています\n", row["name"], row["kozukai"].to_i) + end + end + +else + printf("%d番はありません。さようなら。\n", sel) +end diff --git a/kyoutsuugo.txt b/kyoutsuugo.txt new file mode 100644 index 0000000..4f07c3e --- /dev/null +++ b/kyoutsuugo.txt @@ -0,0 +1,13 @@ +いや~今日のテストわからなくて苦労したよ +わからなくても大丈夫さ +大丈夫なんてお前たちダメでしょう +しっかり勉強しないと偉くなれないよ +偉くなんてならなくてもいいよ +ぺらぺら言わないで早く勉強しなさい +お父さんはいつもうるさいね~ +いいか言うこと聞かないと怒るぞ +でも今日のテストのプリントどこにやったかわからないんだもの +わからないなんてきちんとさがして勉強しなさい +勉強の前にご飯食べさせて +たくさん食べなさい +はい食べます \ No newline at end of file diff --git a/moji.csv b/moji.csv new file mode 100644 index 0000000..4f7b043 --- /dev/null +++ b/moji.csv @@ -0,0 +1,6 @@ +moji +i +Programming +Application +I +Image diff --git a/score.sq3 b/score.sq3 new file mode 100644 index 0000000..779b784 --- /dev/null +++ b/score.sq3 Binary files differ diff --git a/shonaiben_translator.rb b/shonaiben_translator.rb new file mode 100644 index 0000000..18ce909 --- /dev/null +++ b/shonaiben_translator.rb @@ -0,0 +1,44 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def levenshtein(string1, string2, memo={}) # レーベンシュタイン距離を計算するメソッド + return memo[[string1, string2]] if memo[[string1, string2]] + return string2.size if string1.empty? + return string1.size if string2.empty? + return levenshtein(string1[1..], string2[1..], memo) if string1[0] == string2[0] + min_dist = 1 + [levenshtein(string1[1..], string2, memo), + levenshtein(string1, string2[1..], memo), + levenshtein(string1[1..], string2[1..], memo) + ].min + memo[[string1, string2]] = min_dist + min_dist +end + +source = File.readlines("shounaiben.txt") # 庄内弁の文章をファイルから読み込み、配列に保存 +candidates = File.readlines("kyoutsuugo.txt") # 共通語の訳文をファイルから読み込み、配列に保存 + +i = 0 +while i < source.length # 庄内弁の文章ごとに同じ処理を繰り返す + dist2target = levenshtein(source[i].chomp, candidates[i].chomp) # 正解訳文への編集距離の計算 + min_dist = dist2target # 最短編集距離の初期値(=正解訳文への編集距離) + count_same_or_lower = 0 # 編集距離が正解への距離以下である文章の総数の初期値 + best_cand = candidates[i].chomp # 最短編集距離の訳文の初期値(=正解訳文) + for cand in candidates # それぞれの共通語の文章への編集距離を調べる + dist = levenshtein(source[i].chomp, cand.chomp) + if dist < min_dist + min_dist = dist + best_cand = cand + end + if dist <= dist2target + count_same_or_lower += 1 + end + end + printf("庄内弁の文章: %s\n", source[i].chomp) + printf("共通語の訳文(正解): %s\n", candidates[i].chomp) + printf("最短編集距離の訳文: %s\n", best_cand.chomp) + printf("正解訳文への編集距離: %d\n", dist2target) + printf("最短編集距離: %d\n", min_dist) + printf("編集距離が正解訳文への距離以下である文章の総数: %d\n", count_same_or_lower) + puts + i += 1 +end \ No newline at end of file diff --git a/shounaiben.txt b/shounaiben.txt new file mode 100644 index 0000000..8266081 --- /dev/null +++ b/shounaiben.txt @@ -0,0 +1,13 @@ +いや~今日のテストわがらねぐでよいでねけ~ +わがらねたってなんでもね~ +なんでもでねんでろおめだだめだんねあんが +ちゃんと勉強しねど偉ぐならんねさげの~ +偉ぐなんてなんねぐてもいさげ +しゃべっちょこいでねでちゃっちゃど勉強せ +だだはいっつもやがましちゃ +いがの~言うごど聞がねどごげっぞ +したって今日のテストのプリントどごさやたがわがらねもの~ +わがらねどちゃんとさがして勉強せ +勉強の前さままかせでくれ +ほれいっぺけ~ +せばく~ \ No newline at end of file