■ このスレッドは過去ログ倉庫に格納されています
pythonでgooglecolabでマルコフ連鎖やってるんだが
- 1 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:01:15.759 ID:TZbAQJr10.net
- from janome.tokenizer import Tokenizer
import random
t = Tokenizer()
s = "マルコフ過程とは、マルコフ性をもつ確率過程のことをいう。\
未来の挙動が現在の値だけで決定され、過去の挙動と無関係であるという性質を持つ確率過程である。"
line = ""
for token in t.tokenize(s):
line += token.surface
line += "|"
word_list = line.split("|")
word_list.pop()
dictionary = {}
queue = ""
for word in word_list:
if queue != "" and queue != "。":
if queue not in dictionary:
dictionary[queue] = []
dictionary[queue].append(word)
else:
dictionary[queue].append(word)
queue = word
def generator(start):
sentence = start
now_word = start
for i in range (1000):
if now_word == "。":
break
else:
next_word = random.choice(dictionary[now_word])
now_word = next_word
sentence += next_word
return sentence
for i in range(5):
print(generator("マルコフ"))
- 2 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:02:09.551 ID:TZbAQJr10.net
- この文章をかえてマルコフの部分をカタカナ5文字以上のやつにしたり
漢字にするとエラーになるんだが何で?
- 3 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:03:19.525 ID:bcCE9Ea2r.net
- 知らんけどranger指定あるからじゃない
- 4 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:03:53.353 ID:PdAJCBNmd.net
- マルコフ連鎖どっかで名前だけ聞いたわ
- 5 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:08:05.266 ID:TZbAQJr10.net
- >>3
どこにあるんだろうか?
- 6 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:11:43.233 ID:cxvd4gB10.net
- パッと見だけどsの文章に従ってるんじゃない?
マルコフ過 とか指定したら5文字でもいけそう
- 7 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:16:41.385 ID:BaEkkNb+p.net
- エラーメッセージ貼ってくれ
- 8 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:18:24.642 ID:BaEkkNb+p.net
- generaterの引数に渡した文字列にsに含まれてない文字があると
random.choiceのタイミングでエラーになるかな
- 9 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:22:27.416 ID:cxvd4gB10.net
- あ嘘ついたわgeneratorの
next_word = random.choice(dictionary[now_word])
この部分でnow_wordを指定してるからdictionaryに含まれてなくてエラーになってそう
で辞書作ってんのが
dictionary[queue].append(word)
queue = word
で、wordはword_listから取ってて、word_listの生成が
for token in t.tokenize(s):
line += token.surface
line += "|"
word_list = line.split("|")
だからt.tokenize(s)の時点で生成されたワードしか指定できないんじゃね
tokenizeが何をどう生成してるかは知らん
- 10 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:24:20.788 ID:TZbAQJr10.net
- >>9
そうなのか
それじゃどうしようもないな
- 11 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:27:52.131 ID:TZbAQJr10.net
- >>7
KeyError Traceback (most recent call last)
<ipython-input-4-e12f7432ff53> in <module>()
39
40 for i in range(4):
---> 41 print(generator("野獣先輩"))
<ipython-input-4-e12f7432ff53> in generator(start)
33 break
34 else:
---> 35 next_word = random.choice(dictionary[now_word])
36 now_word = next_word
37 sentence += next_word
KeyError: '野獣先輩'
マルコフのとこ野獣先輩にしたらこんなん出てきた
- 12 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:34:30.410 ID:BaEkkNb+p.net
- >>11
あれ、マルコフだと動くの意味わからんくなってきた
toknizeってなんか単語ごとに区切ってくれるんかね
pc起動する気が起きねえ
generaterの引数を
random.choice(list(word_list))にしたらいけねえかな
- 13 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:45:32.894 ID:BaEkkNb+p.net
- 結果が気になって寝れないんだが
- 14 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:46:03.936 ID:TZbAQJr10.net
- >>12
やってみたらできたわサンガツ!
- 15 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:46:47.273 ID:BaEkkNb+p.net
- >>14
おめでとう
おやすみ
- 16 :以下、?ちゃんねるからVIPがお送りします:2021/03/27(土) 02:54:00.430 ID:TZbAQJr10.net
- >>15
おやすみ
総レス数 16
6 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200