Closed3
転置インデックスを実際に試してみる
ChatGPT調べ
転置インデックスとは?
転置インデックスは、検索エンジン(例: Google)が情報を速く検索できるようにするための技術の一つです。言葉の意味は、文字通り「逆さまにしたインデックス」ということです。この「逆さまにした」という部分がどういうことかを、日常生活での例を使って説明します。
想像してみてください。あなたが図書館の司書さんで、たくさんの本がある大きな図書館を管理しています。ある日、来客が「りんご」という言葉が出てくる本を探していると言ってきました。どうやって探しますか?
- 普通の方法: すべての本を一つ一つ開いて、「りんご」という言葉を探す。これは時間がかかります。
- 転置インデックスを使った方法: あらかじめ「りんご」という言葉が出てくる本のリストを作っておき、それを見るだけ。これならすぐに答えられますね。
この「あらかじめ作っておいたリスト」が転置インデックスです。言葉ごとにどの本に出てくるのかのリストを作っておくことで、検索が速くなります。
ChatGPTに書かせてみる
Colaboratoryで。sudachiをインストール。
!pip install sudachipy sudachidict-core sudachidict-core sudachidict-small sudachidict-full
データを用意
docs = [
"トウカイテイオー(欧字名:Tokai Teio、1988年4月20日 - 2013年8月30日)は、日本の競走馬、種牡馬。七冠馬シンボリルドルフの初年度産駒の一頭であり、日本調教馬として最初の国際G1競走優勝馬である[注 1]。1991年度JRA賞年度代表馬、最優秀4歳牡馬および最優秀父内国産馬、1993年度JRA賞特別賞受賞。 1995年、顕彰馬に選出。主な勝ち鞍は1991年皐月賞、東京優駿(日本ダービー)、1992年ジャパンカップ、1993年有馬記念など。「皇帝」と称された父から連想して付けられた馬名より「帝王」[6]、幾度もの骨折から復活の勝利を挙げた競走生活から「奇跡の名馬」とも呼ばれる。",
"ナリタブライアン(欧字名:Narita Brian、1991年5月3日 - 1998年9月27日)は、日本の競走馬、種牡馬。中央競馬史上5頭目のクラシック三冠馬であり、そのトレードマークから「シャドーロールの怪物」という愛称で親しまれた。1993年8月にデビューし、同年11月から1995年3月にかけてクラシック三冠を含むGI5連勝、10連続連対を達成し、1993年JRA賞最優秀3歳牡馬、1994年JRA賞年度代表馬および最優秀4歳牡馬に選出された。1995年春に故障(股関節炎)を発症したあとは低迷し、6戦して重賞を1勝するにとどまったが(GIは5戦して未勝利)、第44回阪神大賞典におけるマヤノトップガンとのマッチレースや短距離戦である第26回高松宮杯への出走によってファンの話題を集めた。第26回高松宮杯出走後に発症した屈腱炎が原因となって1996年10月に競走馬を引退した。引退後は種牡馬となったが、1998年9月に胃破裂を発症し、安楽死の措置がとられた。半兄に1993年のJRA賞年度代表馬ビワハヤヒデがいる。1997年日本中央競馬会 (JRA) の顕彰馬に選出。",
"エアグルーヴ(欧字名:Air Groove、1993年4月6日 - 2013年4月23日)は、日本の競走馬、繁殖牝馬。1996年に優駿牝馬(オークス、GI)を優勝し、1983年の同レースを制した母・ダイナカールとの母娘2代での制覇を成し遂げた。1997年には天皇賞(秋)(GI)を優勝し、同年、牝馬としては1971年のトウメイ以来26年ぶりとなる年度代表馬に選出された。牡馬と互角以上に渡り合った戦績から「女帝」と称される[4]。その他の勝ち鞍に、1996年のチューリップ賞(GIII)、1997年の札幌記念(GII)、マーメイドステークス(GIII)、1998年の札幌記念(GII)、産経大阪杯(GII)。現役引退後には繁殖牝馬となり、2003年・2004年のエリザベス女王杯勝ち馬アドマイヤグルーヴ(父サンデーサイレンス)、2012年のクイーンエリザベス2世カップ勝ち馬のルーラーシップ(父キングカメハメハ)と2頭のGI勝ち馬を輩出した。",
"タイキシャトル(欧字名:Taiki Shuttle、1994年3月23日 - 2022年8月17日)は、日本の競走馬、種牡馬。主戦騎手は岡部幸雄(ただし2戦は横山典弘が騎乗)。フランスのジャック・ル・マロワ賞を含め国内外でGI競走5勝を挙げ、1998年に短距離路線で活躍した競走馬として、また外国産馬として中央競馬史上初めて年度代表馬に選出され、同年フランスの年度代表馬顕彰(エルメス賞)において最優秀古馬に選出された。引退後の1999年1月28日には、史上25頭目の顕彰馬に選出された。"
]
転置インデックスを作成するコード
from sudachipy import Dictionary, Tokenizer
from collections import defaultdict
from pprint import pprint
tokenizer = Dictionary(dict="full").create()
mode = Tokenizer.SplitMode.C
def tokenize(text):
sentences = text.split("。")
tokens = []
for sentence in sentences:
tokens.extend([t.normalized_form() for t in tokenizer.tokenize(sentence, mode)])
return tokens
# 転置インデックスを作成
def create_inverted_index(docs):
inverted_index = defaultdict(lambda: [0]*len(docs)) # 各ドキュメントの出現情報を保持するリストをデフォルトに
for doc_id, doc in enumerate(docs):
tokens = tokenize(doc)
unique_tokens = set(tokens) # 重複を除去
for token in unique_tokens:
inverted_index[token][doc_id] = 1
return inverted_index
inverted_index = create_inverted_index(docs)
pprint(inverted_index)
実行結果
defaultdict(<function create_inverted_index.<locals>.<lambda> at 0x7eb7656656c0>,
{' ': [1, 1, 1, 1],
'(': [1, 1, 1, 1],
')': [1, 1, 1, 1],
'-': [1, 1, 1, 1],
'1': [1, 1, 0, 1],
'10': [0, 1, 0, 0],
'11': [0, 1, 0, 0],
'17': [0, 0, 0, 1],
'1971': [0, 0, 1, 0],
'1983': [0, 0, 1, 0],
'1988': [1, 0, 0, 0],
'1991': [1, 1, 0, 0],
'1992': [1, 0, 0, 0],
'1993': [1, 1, 1, 0],
'1994': [0, 1, 0, 1],
'1995': [1, 1, 0, 0],
'1996': [0, 1, 1, 0],
'1997': [0, 1, 1, 0],
'1998': [0, 1, 1, 1],
'1999': [0, 0, 0, 1],
'2': [0, 0, 1, 1],
'20': [1, 0, 0, 0],
'2003': [0, 0, 1, 0],
'2004': [0, 0, 1, 0],
'2012': [0, 0, 1, 0],
'2013': [1, 0, 1, 0],
'2022': [0, 0, 0, 1],
'23': [0, 0, 1, 1],
'25': [0, 0, 0, 1],
'26': [0, 1, 1, 0],
'27': [0, 1, 0, 0],
'28': [0, 0, 0, 1],
'3': [0, 1, 0, 1],
'30': [1, 0, 0, 0],
'4': [1, 1, 1, 0],
'44': [0, 1, 0, 0],
'5': [0, 1, 0, 1],
'6': [1, 1, 1, 0],
'7': [1, 0, 0, 0],
'8': [1, 1, 0, 1],
'9': [0, 1, 0, 0],
':': [1, 1, 1, 1],
'GI': [0, 1, 1, 1],
'GII': [0, 0, 1, 0],
'GIII': [0, 0, 1, 0],
'JRA': [0, 1, 0, 0],
'JRA賞': [1, 1, 0, 0],
'JRA賞特別賞': [1, 0, 0, 0],
'Sunday Silence': [0, 0, 1, 0],
'TAIKI': [0, 0, 0, 1],
'TOKAI': [1, 0, 0, 0],
'[': [1, 0, 1, 0],
']': [1, 0, 1, 0],
'brian': [0, 1, 0, 0],
'g': [1, 0, 0, 0],
'narita': [0, 1, 0, 0],
'teio': [1, 0, 0, 0],
'、': [1, 1, 1, 1],
'「': [1, 1, 1, 0],
'」': [1, 1, 1, 0],
'おく': [0, 1, 0, 1],
'かける': [0, 1, 0, 0],
'から': [1, 1, 1, 0],
'が': [0, 1, 0, 1],
'た': [1, 1, 1, 1],
'だ': [1, 1, 0, 0],
'て': [1, 1, 1, 1],
'で': [0, 1, 1, 1],
'と': [1, 1, 1, 1],
'など': [1, 0, 0, 0],
'に': [1, 1, 1, 1],
'の': [1, 1, 1, 1],
'は': [1, 1, 1, 1],
'へ': [0, 1, 0, 0],
'も': [1, 0, 0, 0],
'や': [0, 1, 0, 0],
'より': [1, 0, 0, 0],
'よる': [0, 1, 0, 0],
'られる': [1, 0, 0, 0],
'り': [0, 1, 0, 0],
'れる': [1, 1, 1, 1],
'を': [1, 1, 1, 1],
'アドマイヤグルーブ': [0, 0, 1, 0],
'エアグルーヴ': [0, 0, 1, 0],
'エアー': [0, 0, 1, 0],
'エリザベス女王': [0, 0, 1, 0],
'エルメス': [0, 0, 0, 1],
'オークス': [0, 0, 1, 0],
'カップ': [0, 0, 1, 0],
'カール': [0, 0, 1, 0],
'キングカメハメハ': [0, 0, 1, 0],
'クイーン・エリザベス': [0, 0, 1, 0],
'クラシック': [0, 1, 0, 0],
'グルーブ': [0, 0, 1, 0],
'シャトル': [0, 0, 0, 1],
'シャドーロール': [0, 1, 0, 0],
'シンボリルドルフ': [1, 0, 0, 0],
'ジャック': [0, 0, 0, 1],
'ジャパンカップ': [1, 0, 0, 0],
'タイキシャトル': [0, 0, 0, 1],
'ダイナ': [0, 0, 1, 0],
'チューリップ賞': [0, 0, 1, 0],
'デビュー': [0, 1, 0, 0],
'トウカイテイオー': [1, 0, 0, 0],
'トウメイ': [0, 0, 1, 0],
'トレードマーク': [0, 1, 0, 0],
'ナリタブライアン': [0, 1, 0, 0],
'ビワハヤヒデ': [0, 1, 0, 0],
'ファン': [0, 1, 0, 0],
'フランス': [0, 0, 0, 1],
'マッチ': [0, 1, 0, 0],
'マヤノトップガン': [0, 1, 0, 0],
'マロワ': [0, 0, 0, 1],
'マーメイドステークス': [0, 0, 1, 0],
'ル': [0, 0, 0, 1],
'ルーラーシップ': [0, 0, 1, 0],
'レース': [0, 1, 1, 0],
'・': [0, 0, 1, 1],
'三冠馬': [0, 1, 0, 0],
'上': [0, 1, 0, 1],
'上げる': [1, 0, 0, 1],
'世': [0, 0, 1, 0],
'中央競馬': [0, 1, 0, 1],
'主な': [1, 0, 0, 0],
'主戦騎手': [0, 0, 0, 1],
'互角': [0, 0, 1, 0],
'他': [0, 0, 1, 0],
'付ける': [1, 0, 0, 0],
'代': [0, 0, 1, 0],
'以上': [0, 0, 1, 0],
'以来': [0, 0, 1, 0],
'但し': [0, 0, 0, 1],
'低迷': [0, 1, 0, 0],
'優勝': [1, 0, 1, 0],
'優駿牝馬': [0, 0, 1, 0],
'兄': [0, 1, 0, 0],
'其の': [0, 1, 1, 0],
'典': [0, 1, 0, 0],
'冠': [1, 1, 0, 0],
'出走': [0, 1, 0, 0],
'初': [1, 0, 0, 0],
'初めて': [0, 0, 0, 1],
'制する': [0, 0, 1, 0],
'制覇': [0, 0, 1, 0],
'勝': [0, 1, 0, 1],
'勝ち鞍': [1, 0, 1, 0],
'勝ち馬': [0, 0, 1, 0],
'勝利': [1, 1, 0, 0],
'半': [0, 1, 0, 0],
'原因': [0, 1, 0, 0],
'又': [0, 0, 0, 1],
'及び': [1, 1, 0, 0],
'取る': [0, 1, 0, 0],
'受賞': [1, 0, 0, 0],
'古馬': [0, 0, 0, 1],
'史': [0, 1, 0, 1],
'史上': [0, 0, 0, 1],
'同': [0, 0, 1, 0],
'同年': [0, 1, 1, 1],
'名': [1, 1, 1, 1],
'名馬': [1, 0, 0, 0],
'含む': [0, 1, 0, 0],
'含める': [0, 0, 0, 1],
'呼ぶ': [1, 0, 0, 0],
'回': [0, 1, 0, 0],
'国内外': [0, 0, 0, 1],
'国際': [1, 0, 0, 0],
'外国産馬': [0, 0, 0, 1],
'大賞': [0, 1, 0, 0],
'大阪杯': [0, 0, 1, 0],
'天皇賞': [0, 0, 1, 0],
'奇跡': [1, 0, 0, 0],
'女帝': [0, 0, 1, 0],
'安楽死': [0, 1, 0, 0],
'居る': [0, 1, 0, 0],
'屈腱炎': [0, 1, 0, 0],
'岡部幸雄': [0, 0, 0, 1],
'帝王': [1, 0, 0, 0],
'年': [1, 1, 1, 1],
'年度': [1, 0, 0, 0],
'年度代表馬': [1, 1, 1, 1],
'幾度': [1, 0, 0, 0],
'引退': [0, 1, 0, 0],
'引退後': [0, 1, 0, 1],
'後': [0, 1, 0, 0],
'復活': [1, 0, 0, 0],
'怪物': [0, 1, 0, 0],
'愛称': [0, 1, 0, 0],
'成し遂げる': [0, 0, 1, 0],
'成る': [0, 1, 1, 0],
'戦': [0, 1, 0, 1],
'戦績': [0, 0, 1, 0],
'振り': [0, 0, 1, 0],
'措置': [0, 1, 0, 0],
'故障': [0, 1, 0, 0],
'日': [1, 1, 1, 1],
'日本': [1, 1, 1, 1],
'日本ダービー': [1, 0, 0, 0],
'日本中央競馬会': [0, 1, 0, 0],
'春': [0, 1, 0, 0],
'最優秀': [1, 1, 0, 1],
'最優秀父内国産馬': [1, 0, 0, 0],
'最初': [1, 0, 0, 0],
'月': [1, 1, 1, 1],
'有る': [1, 1, 0, 0],
'有馬記念': [1, 0, 0, 0],
'未': [0, 1, 0, 0],
'札幌記念': [0, 0, 1, 0],
'杯': [0, 1, 1, 0],
'東京優駿': [1, 0, 0, 0],
'横山典弘': [0, 0, 0, 1],
'欧字': [1, 1, 1, 1],
'歳': [1, 1, 0, 0],
'母': [0, 0, 1, 0],
'母娘': [0, 0, 1, 0],
'注': [1, 0, 0, 0],
'活躍': [0, 0, 0, 1],
'渡り合う': [0, 0, 1, 0],
'為る': [1, 1, 1, 1],
'父': [1, 0, 1, 0],
'牝馬': [0, 0, 1, 0],
'牡馬': [1, 1, 1, 0],
'現役引退後': [0, 0, 1, 0],
'生活': [1, 0, 0, 0],
'産経': [0, 0, 1, 0],
'産駒': [1, 0, 0, 0],
'留まる': [0, 1, 0, 0],
'発症': [0, 1, 0, 0],
'皇帝': [1, 0, 0, 0],
'皐月賞': [1, 0, 0, 0],
'目': [0, 1, 0, 1],
'短距離': [0, 1, 0, 1],
'破裂': [0, 1, 0, 0],
'秋': [0, 0, 1, 0],
'称する': [1, 0, 1, 0],
'種牡馬': [1, 1, 0, 1],
'競走': [1, 0, 0, 1],
'競走馬': [1, 1, 1, 1],
'第': [0, 1, 0, 0],
'繁殖牝馬': [0, 0, 1, 0],
'股': [0, 1, 0, 0],
'胃': [0, 1, 0, 0],
'親しむ': [0, 1, 0, 0],
'言う': [0, 1, 0, 0],
'話題': [0, 1, 0, 0],
'調教': [1, 0, 0, 0],
'賞': [0, 0, 0, 1],
'路線': [0, 0, 0, 1],
'輩出': [0, 0, 1, 0],
'連勝': [0, 1, 0, 0],
'連対': [0, 1, 0, 0],
'連想': [1, 0, 0, 0],
'連続': [0, 1, 0, 0],
'達成': [0, 1, 0, 0],
'選出': [1, 1, 1, 1],
'重賞': [0, 1, 0, 0],
'関節炎': [0, 1, 0, 0],
'阪神': [0, 1, 0, 0],
'集める': [0, 1, 0, 0],
'頭': [1, 1, 1, 1],
'顕彰': [0, 0, 0, 1],
'顕彰馬': [1, 1, 0, 1],
'馬': [1, 0, 0, 0],
'馬名': [1, 0, 0, 0],
'騎乗': [0, 0, 0, 1],
'骨折': [1, 0, 0, 0],
'高松宮': [0, 1, 0, 0]})
これを検索してみる。
print(inverted_index["牡馬"])
print(inverted_index["顕彰馬"])
# AND検索
print([a & b for a, b in zip(inverted_index["牡馬"], inverted_index["顕彰馬"])])
# OR検索
print([a | b for a, b in zip(inverted_index["牡馬"], inverted_index["顕彰馬"])])
[1, 1, 1, 0]
[1, 1, 0, 1]
[1, 1, 0, 0]
[1, 1, 1, 1]
ドキュメントの量が多くなると、0が多くなって無駄が多くなる。
上記にターム辞書・ポスティングリストの概念を追加してみる。出現位置も付与する。
from sudachipy import Dictionary, Tokenizer
from collections import defaultdict
from pprint import pprint
tokenizer = Dictionary(dict="full").create()
mode = Tokenizer.SplitMode.C
def tokenize(text):
sentences = text.split("。")
tokens = []
for sentence in sentences:
tokens.extend([t.normalized_form() for t in tokenizer.tokenize(sentence, mode)])
return tokens
def create_inverted_index_with_positions(docs):
inverted_index = defaultdict(dict)
for doc_id, doc in enumerate(docs):
tokens = tokenize(doc)
for position, token in enumerate(tokens):
if token not in inverted_index:
inverted_index[token] = {}
if doc_id not in inverted_index[token]:
inverted_index[token][doc_id] = []
inverted_index[token][doc_id].append(position)
return inverted_index
inverted_index = create_inverted_index_with_positions(docs)
pprint(inverted_index)
defaultdict(<class 'dict'>,
{' ': {0: [6, 15, 17, 64, 83],
1: [6, 15, 17, 261, 265],
2: [6, 15, 17],
3: [6, 15, 17]},
'(': {0: [1, 98],
1: [1, 121, 147, 262],
2: [1, 36, 73, 76, 134, 142, 147, 155, 161, 181, 196],
3: [1, 35, 97]},
')': {0: [24, 100],
1: [24, 124, 156, 264],
2: [24, 40, 75, 78, 136, 144, 149, 157, 163, 184, 199],
3: [24, 43, 100]},
'-': {0: [16], 1: [16], 2: [16], 3: [16]},
'1': {0: [41, 56, 65], 1: [140], 3: [115]},
'10': {1: [87, 213]},
'11': {1: [68]},
'17': {3: [22]},
'1971': {2: [90]},
'1983': {2: [45]},
'1988': {0: [9]},
'1991': {0: [67, 93], 1: [9]},
'1992': {0: [102]},
'1993': {0: [79, 106], 1: [59, 94, 250], 2: [9]},
'1994': {1: [102], 3: [9]},
'1995': {0: [84], 1: [71, 116]},
'1996': {1: [211], 2: [32, 130]},
'1997': {1: [258], 2: [68, 138]},
'1998': {1: [18, 229], 2: [151], 3: [63]},
'1999': {3: [113]},
'2': {2: [60, 190, 201], 3: [37]},
'20': {0: [13]},
'2003': {2: [171]},
'2004': {2: [174]},
'2012': {2: [186]},
'2013': {0: [18], 2: [18]},
'2022': {3: [18]},
'23': {2: [22], 3: [13]},
'25': {3: [123]},
'26': {1: [178, 195], 2: [95]},
'27': {1: [22]},
'28': {3: [117]},
'3': {1: [13, 73, 79, 98], 3: [11]},
'30': {0: [22]},
'4': {0: [11, 73], 1: [108], 2: [11, 20, 122]},
'44': {1: [159]},
'5': {1: [11, 35, 84, 150], 3: [58]},
'6': {0: [131], 1: [134], 2: [13]},
'7': {0: [32]},
'8': {0: [20], 1: [61], 3: [20]},
'9': {1: [20, 231]},
':': {0: [4], 1: [4], 2: [4], 3: [4]},
'GI': {1: [83, 148], 2: [39, 77, 204], 3: [56]},
'GII': {2: [143, 156, 162]},
'GIII': {2: [135, 148]},
'JRA': {1: [263]},
'JRA賞': {0: [69], 1: [96, 104, 253]},
'JRA賞特別賞': {0: [81]},
'Sunday Silence': {2: [183]},
'TAIKI': {3: [5]},
'TOKAI': {0: [5]},
'[': {0: [62, 130], 2: [121]},
']': {0: [66, 132], 2: [123]},
'brian': {1: [7]},
'g': {0: [55]},
'narita': {1: [5]},
'teio': {0: [7]},
'、': {0: [8, 26, 30, 45, 71, 78, 86, 96, 101, 105, 133],
1: [8, 26, 30, 43, 66, 86, 93, 101, 133, 157, 228, 239],
2: [8,
26,
30,
38,
44,
82,
84,
129,
137,
145,
150,
158,
170,
185],
3: [8, 26, 30, 62, 76, 91, 121]},
'「': {0: [110, 127, 148], 1: [47], 2: [115]},
'」': {0: [112, 129, 152], 1: [51], 2: [117]},
'おく': {1: [165], 3: [102]},
'かける': {1: [76]},
'から': {0: [118, 138, 147], 1: [46, 70], 2: [114]},
'が': {1: [146, 206, 227, 243, 256], 3: [41]},
'た': {0: [116, 124, 144],
1: [58, 115, 128, 145, 193, 204, 220, 226, 246],
2: [52, 67, 105, 112, 209],
3: [71, 110, 132]},
'だ': {0: [43, 60], 1: [41, 175]},
'て': {0: [51, 121],
1: [77, 137, 153, 187, 210],
2: [88],
3: [75, 81, 103]},
'で': {1: [55], 2: [62], 3: [55, 68]},
'と': {0: [49, 113, 153],
1: [52, 168, 208, 224],
2: [57, 86, 98, 107, 118, 168, 200],
3: [73, 79]},
'など': {0: [109]},
'に': {0: [88],
1: [63,
75,
111,
119,
143,
164,
185,
201,
215,
233,
249,
268],
2: [34, 70, 101, 110, 128, 165],
3: [65, 87, 101, 106, 119, 128]},
'の': {0: [28, 36, 40, 53, 136, 140, 150],
1: [28, 38, 49, 169, 183, 189, 241, 252, 266],
2: [28,
47,
58,
63,
92,
126,
132,
140,
153,
176,
188,
194,
203],
3: [28, 45, 94, 112, 126]},
'は': {0: [25, 92],
1: [25, 130, 149, 222],
2: [25, 71, 89, 166],
3: [25, 33, 39, 120]},
'へ': {1: [182]},
'も': {0: [135, 154]},
'や': {1: [172]},
'より': {0: [126]},
'よる': {1: [186]},
'られる': {0: [123]},
'り': {1: [166]},
'れる': {0: [115, 156],
1: [57, 114, 245],
2: [104, 120],
3: [90, 109, 131]},
'を': {0: [142],
1: [81, 90, 125, 139, 191, 217, 236],
2: [41, 50, 65, 79, 206],
3: [52, 60]},
'アドマイヤグルーブ': {2: [180]},
'エアグルーヴ': {2: [0]},
'エアー': {2: [5]},
'エリザベス女王': {2: [177]},
'エルメス': {3: [98]},
'オークス': {2: [37]},
'カップ': {2: [192]},
'カール': {2: [56]},
'キングカメハメハ': {2: [198]},
'クイーン・エリザベス': {2: [189]},
'クラシック': {1: [39, 78]},
'グルーブ': {2: [7]},
'シャトル': {3: [7]},
'シャドーロール': {1: [48]},
'シンボリルドルフ': {0: [35]},
'ジャック': {3: [46]},
'ジャパンカップ': {0: [104]},
'タイキシャトル': {3: [0]},
'ダイナ': {2: [55]},
'チューリップ賞': {2: [133]},
'デビュー': {1: [64]},
'トウカイテイオー': {0: [0]},
'トウメイ': {2: [93]},
'トレードマーク': {1: [45]},
'ナリタブライアン': {1: [0]},
'ビワハヤヒデ': {1: [255]},
'ファン': {1: [188]},
'フランス': {3: [44, 93]},
'マッチ': {1: [170]},
'マヤノトップガン': {1: [167]},
'マロワ': {3: [50]},
'マーメイドステークス': {2: [146]},
'ル': {3: [48]},
'ルーラーシップ': {2: [195]},
'レース': {1: [171], 2: [49]},
'・': {2: [54, 173], 3: [47, 49]},
'三冠馬': {1: [40]},
'上': {1: [34], 3: [84]},
'上げる': {0: [143], 3: [61]},
'世': {2: [191]},
'中央競馬': {1: [32], 3: [82]},
'主な': {0: [90]},
'主戦騎手': {3: [32]},
'互角': {2: [108]},
'他': {2: [125]},
'付ける': {0: [122]},
'代': {2: [61]},
'以上': {2: [109]},
'以来': {2: [94]},
'但し': {3: [36]},
'低迷': {1: [131]},
'優勝': {0: [58], 2: [42, 80]},
'優駿牝馬': {2: [35]},
'兄': {1: [248]},
'其の': {1: [44], 2: [124]},
'典': {1: [163]},
'冠': {0: [33], 1: [80]},
'出走': {1: [184, 199]},
'初': {0: [37]},
'初めて': {3: [85]},
'制する': {2: [51]},
'制覇': {2: [64]},
'勝': {1: [141], 3: [59]},
'勝ち鞍': {0: [91], 2: [127]},
'勝ち馬': {2: [179, 193, 205]},
'勝利': {0: [141], 1: [155]},
'半': {1: [247]},
'原因': {1: [207]},
'又': {3: [77]},
'及び': {0: [76], 1: [106]},
'取る': {1: [244]},
'受賞': {0: [82]},
'古馬': {3: [105]},
'史': {1: [33], 3: [83]},
'史上': {3: [122]},
'同': {2: [48]},
'同年': {1: [67], 2: [83], 3: [92]},
'名': {0: [3], 1: [3], 2: [3], 3: [3]},
'名馬': {0: [151]},
'含む': {1: [82]},
'含める': {3: [53]},
'呼ぶ': {0: [155]},
'回': {1: [160, 179, 196]},
'国内外': {3: [54]},
'国際': {0: [54]},
'外国産馬': {3: [78]},
'大賞': {1: [162]},
'大阪杯': {2: [160]},
'天皇賞': {2: [72]},
'奇跡': {0: [149]},
'女帝': {2: [116]},
'安楽死': {1: [240]},
'居る': {1: [257]},
'屈腱炎': {1: [205]},
'岡部幸雄': {3: [34]},
'帝王': {0: [128]},
'年': {0: [10, 19, 85, 94, 103, 107],
1: [10, 19, 60, 72, 95, 103, 117, 212, 230, 251, 259],
2: [10,
19,
33,
46,
69,
91,
96,
131,
139,
152,
172,
175,
187],
3: [10, 19, 64, 114]},
'年度': {0: [38, 68, 80]},
'年度代表馬': {0: [70], 1: [105, 254], 2: [100], 3: [86, 95]},
'幾度': {0: [134]},
'引退': {1: [218]},
'引退後': {1: [221], 3: [111]},
'後': {1: [129, 200]},
'復活': {0: [139]},
'怪物': {1: [50]},
'愛称': {1: [54]},
'成し遂げる': {2: [66]},
'成る': {1: [209, 225], 2: [99, 169]},
'戦': {1: [135, 151, 174], 3: [38]},
'戦績': {2: [113]},
'振り': {2: [97]},
'措置': {1: [242]},
'故障': {1: [120]},
'日': {0: [14, 23], 1: [14, 23], 2: [14, 23], 3: [14, 23, 118]},
'日本': {0: [27, 46], 1: [27], 2: [27], 3: [27]},
'日本ダービー': {0: [99]},
'日本中央競馬会': {1: [260]},
'春': {1: [118]},
'最優秀': {0: [72], 1: [97, 107], 3: [104]},
'最優秀父内国産馬': {0: [77]},
'最初': {0: [52]},
'月': {0: [12, 21],
1: [12, 21, 62, 69, 74, 214, 232],
2: [12, 21],
3: [12, 21, 116]},
'有る': {0: [44, 61], 1: [42, 176]},
'有馬記念': {0: [108]},
'未': {1: [154]},
'札幌記念': {2: [141, 154]},
'杯': {1: [181, 198], 2: [178]},
'東京優駿': {0: [97]},
'横山典弘': {3: [40]},
'欧字': {0: [2], 1: [2], 2: [2], 3: [2]},
'歳': {0: [74], 1: [99, 109]},
'母': {2: [53]},
'母娘': {2: [59]},
'注': {0: [63]},
'活躍': {3: [69]},
'渡り合う': {2: [111]},
'為る': {0: [50, 120],
1: [65, 92, 113, 127, 132, 136, 142, 152, 203, 219, 238],
2: [43, 81, 87, 103, 208],
3: [70, 74, 80, 89, 108, 130]},
'父': {0: [117], 2: [182, 197]},
'牝馬': {2: [85]},
'牡馬': {0: [75], 1: [100, 110], 2: [106]},
'現役引退後': {2: [164]},
'生活': {0: [146]},
'産経': {2: [159]},
'産駒': {0: [39]},
'留まる': {1: [144]},
'発症': {1: [126, 202, 237]},
'皇帝': {0: [111]},
'皐月賞': {0: [95]},
'目': {1: [37], 3: [125]},
'短距離': {1: [173], 3: [66]},
'破裂': {1: [235]},
'秋': {2: [74]},
'称する': {0: [114], 2: [119]},
'種牡馬': {0: [31], 1: [31, 223], 3: [31]},
'競走': {0: [57, 145], 3: [57]},
'競走馬': {0: [29], 1: [29, 216], 2: [29], 3: [29, 72]},
'第': {1: [158, 177, 194]},
'繁殖牝馬': {2: [31, 167]},
'股': {1: [122]},
'胃': {1: [234]},
'親しむ': {1: [56]},
'言う': {1: [53]},
'話題': {1: [190]},
'調教': {0: [47]},
'賞': {3: [51, 99]},
'路線': {3: [67]},
'輩出': {2: [207]},
'連勝': {1: [85]},
'連対': {1: [89]},
'連想': {0: [119]},
'連続': {1: [88]},
'達成': {1: [91]},
'選出': {0: [89], 1: [112, 269], 2: [102], 3: [88, 107, 129]},
'重賞': {1: [138]},
'関節炎': {1: [123]},
'阪神': {1: [161]},
'集める': {1: [192]},
'頭': {0: [42], 1: [36], 2: [202], 3: [124]},
'顕彰': {3: [96]},
'顕彰馬': {0: [87], 1: [267], 3: [127]},
'馬': {0: [34, 48, 59]},
'馬名': {0: [125]},
'騎乗': {3: [42]},
'骨折': {0: [137]},
'高松宮': {1: [180, 197]}})
実際にはターム辞書とポスティングリストは別々になるっぽい。
このスクラップは2023/10/16にクローズされました