【言語処理100本ノック 2020】第5章: 係り受け解析【Python】

自然言語処理の問題集として有名な言語処理100本ノックの2020年版の解答例です。 この記事では、以下の第1章から第10章のうち、「第5章: 係り受け解析」を解いてみた結果をまとめています。

環境設定

コードの実行はGoogle Colaboratoryで行います。 以降の解答の実行結果をすべて含むノートブックは、以下のリンクから直接参照することができます。

Open In Colab

第5章: 係り受け解析

日本語Wikipediaの「人工知能」に関する記事からテキスト部分を抜き出したファイルがai.ja.zipに収録されている. この文章をCaboChaやKNP等のツールを利用して係り受け解析を行い,その結果をai.ja.txt.parsedというファイルに保存せよ.このファイルを読み込み,以下の問に対応するプログラムを実装せよ.

まずは指定のデータをダウンロードします。 Google Colaboratoryのセル上で下記のコマンドを実行すると、現在のディレクトリに対象のファイルがダウンロードされます。

!wget https://nlp100.github.io/data/ai.ja.zip
!unzip ai.ja.zip

続いて、CaboChaおよびCaboChaの実行に必要なMeCabとCRF++をインストールします。

# MeCabのインストール
!apt install mecab libmecab-dev mecab-ipadic-utf8
# CRF++のソースファイルのダウンロード・解凍・インストール
import gdown

url = "https://drive.google.com/uc?id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ"
output = "crfpp.tar.gz"
gdown.download(url, output, quiet=False)
!tar xvf crfpp.tar.gz
%cd /content/CRF++-0.58
!./configure && make && make install && ldconfig
# CaboChaのソースファイルのダウンロード・解凍・インストール
url = "https://drive.google.com/uc?id=0B4y35FiV1wh7SDd1Q1dUQkZQaUU"
output = "cabocha-0.69.tar.bz2"
gdown.download(url, output, quiet=False)
!tar -xvf cabocha-0.69.tar.bz2
%cd /content/cabocha-0.69
!./configure -with-charset=utf-8 && make && make check && make install && ldconfig

インストールが完了したら、早速係り受け解析を行います。 以下のコマンドを実行することにより、ai.ja.txtを係り受け解析した結果が、ai.ja.txt.parsedとして出力されます。

%cd /content
!cabocha -f1 -o ai.ja.txt.parsed ai.ja.txt 

出力結果を確認します。

# 行数の確認
!wc -l ./ai.ja.txt.parsed
--- 出力 ---
11744 ./ai.ja.txt.parsed
# 先頭15行の確認
!head -15 ./ai.ja.txt.parsed
--- 出力 ---
* 0 -1D 1/1 0.000000
人工  名詞,一般,*,*,*,*,人工,ジンコウ,ジンコー
知能  名詞,一般,*,*,*,*,知能,チノウ,チノー
EOS
EOS
* 0 17D 1/1 0.388993
人工  名詞,一般,*,*,*,*,人工,ジンコウ,ジンコー
知能  名詞,一般,*,*,*,*,知能,チノウ,チノー
* 1 17D 2/3 0.613549
( 記号,括弧開,*,*,*,*,(,(,(
じん  名詞,一般,*,*,*,*,じん,ジン,ジン
こうち   名詞,一般,*,*,*,*,こうち,コウチ,コーチ
のう  助詞,終助詞,*,*,*,*,のう,ノウ,ノー
、 記号,読点,*,*,*,*,、,、,、
、 記号,読点,*,*,*,*,、,、,、

一部うまくいっていませんね。

40. 係り受け解析結果の読み込み(形態素)

形態素を表すクラスMorphを実装せよ.このクラスは表層形(surface),基本形(base),品詞(pos),品詞細分類1(pos1)をメンバ変数に持つこととする.さらに,係り受け解析の結果(ai.ja.txt.parsed)を読み込み,各文をMorphオブジェクトのリストとして表現し,冒頭の説明文の形態素列を表示せよ.

class Morph:
  def __init__(self, morph):
    surface, attr = morph.split('\t')
    attr = attr.split(',')
    self.surface = surface
    self.base = attr[6]
    self.pos = attr[0]
    self.pos1 = attr[1]
filename = './ai.ja.txt.parsed'

sentences = []
morphs = []
with open(filename, mode='r') as f:
  for line in f:
    if line[0] == '*':  # 係り受け関係を表す行:スキップ
      continue
    elif line != 'EOS\n':  # 文末以外:Morphを適用し形態素リストに追加
      morphs.append(Morph(line))
    else:  # 文末:形態素リストを文リストに追加
      sentences.append(morphs)
      morphs = []

# 確認
for m in sentences[2]:
  print(vars(m))
--- 出力 ---
{'surface': '人工', 'base': '人工', 'pos': '名詞', 'pos1': '一般'}
{'surface': '知能', 'base': '知能', 'pos': '名詞', 'pos1': '一般'}
{'surface': '(', 'base': '(', 'pos': '記号', 'pos1': '括弧開'}
{'surface': 'じん', 'base': 'じん', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'こうち', 'base': 'こうち', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'のう', 'base': 'のう', 'pos': '助詞', 'pos1': '終助詞'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': 'AI', 'base': '*\n', 'pos': '名詞', 'pos1': '一般'}
{'surface': '〈', 'base': '〈', 'pos': '記号', 'pos1': '括弧開'}
{'surface': 'エーアイ', 'base': '*\n', 'pos': '名詞', 'pos1': '固有名詞'}
{'surface': '〉', 'base': '〉', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': ')', 'base': ')', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'と', 'base': 'と', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': 'は', 'base': 'は', 'pos': '助詞', 'pos1': '係助詞'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': '「', 'base': '「', 'pos': '記号', 'pos1': '括弧開'}
{'surface': '『', 'base': '『', 'pos': '記号', 'pos1': '括弧開'}
{'surface': '計算', 'base': '計算', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': '(', 'base': '(', 'pos': '記号', 'pos1': '括弧開'}
{'surface': ')', 'base': ')', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': '』', 'base': '』', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'という', 'base': 'という', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '概念', 'base': '概念', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'と', 'base': 'と', 'pos': '助詞', 'pos1': '並立助詞'}
{'surface': '『', 'base': '『', 'pos': '記号', 'pos1': '括弧開'}
{'surface': 'コンピュータ', 'base': 'コンピュータ', 'pos': '名詞', 'pos1': '一般'}
{'surface': '(', 'base': '(', 'pos': '記号', 'pos1': '括弧開'}
{'surface': ')', 'base': ')', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': '』', 'base': '』', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'という', 'base': 'という', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '道具', 'base': '道具', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'を', 'base': 'を', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '用い', 'base': '用いる', 'pos': '動詞', 'pos1': '自立'}
{'surface': 'て', 'base': 'て', 'pos': '助詞', 'pos1': '接続助詞'}
{'surface': '『', 'base': '『', 'pos': '記号', 'pos1': '括弧開'}
{'surface': '知能', 'base': '知能', 'pos': '名詞', 'pos1': '一般'}
{'surface': '』', 'base': '』', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'を', 'base': 'を', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '研究', 'base': '研究', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'する', 'base': 'する', 'pos': '動詞', 'pos1': '自立'}
{'surface': '計算', 'base': '計算', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': '機', 'base': '機', 'pos': '名詞', 'pos1': '接尾'}
{'surface': '科学', 'base': '科学', 'pos': '名詞', 'pos1': '一般'}
{'surface': '(', 'base': '(', 'pos': '記号', 'pos1': '括弧開'}
{'surface': ')', 'base': ')', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'の', 'base': 'の', 'pos': '助詞', 'pos1': '連体化'}
{'surface': '一', 'base': '一', 'pos': '名詞', 'pos1': '数'}
{'surface': '分野', 'base': '分野', 'pos': '名詞', 'pos1': '一般'}
{'surface': '」', 'base': '」', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'を', 'base': 'を', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '指す', 'base': '指す', 'pos': '動詞', 'pos1': '自立'}
{'surface': '語', 'base': '語', 'pos': '名詞', 'pos1': '一般'}
{'surface': '。', 'base': '。', 'pos': '記号', 'pos1': '句点'}
{'surface': '「', 'base': '「', 'pos': '記号', 'pos1': '括弧開'}
{'surface': '言語', 'base': '言語', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'の', 'base': 'の', 'pos': '助詞', 'pos1': '連体化'}
{'surface': '理解', 'base': '理解', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'や', 'base': 'や', 'pos': '助詞', 'pos1': '並立助詞'}
{'surface': '推論', 'base': '推論', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': '問題', 'base': '問題', 'pos': '名詞', 'pos1': 'ナイ形容詞語幹'}
{'surface': '解決', 'base': '解決', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'など', 'base': 'など', 'pos': '助詞', 'pos1': '副助詞'}
{'surface': 'の', 'base': 'の', 'pos': '助詞', 'pos1': '連体化'}
{'surface': '知的', 'base': '知的', 'pos': '名詞', 'pos1': '一般'}
{'surface': '行動', 'base': '行動', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'を', 'base': 'を', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '人間', 'base': '人間', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'に', 'base': 'に', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '代わっ', 'base': '代わる', 'pos': '動詞', 'pos1': '自立'}
{'surface': 'て', 'base': 'て', 'pos': '助詞', 'pos1': '接続助詞'}
{'surface': 'コンピューター', 'base': 'コンピューター', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'に', 'base': 'に', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '行わ', 'base': '行う', 'pos': '動詞', 'pos1': '自立'}
{'surface': 'せる', 'base': 'せる', 'pos': '動詞', 'pos1': '接尾'}
{'surface': '技術', 'base': '技術', 'pos': '名詞', 'pos1': '一般'}
{'surface': '」', 'base': '」', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': 'または', 'base': 'または', 'pos': '接続詞', 'pos1': '*'}
{'surface': '、', 'base': '、', 'pos': '記号', 'pos1': '読点'}
{'surface': '「', 'base': '「', 'pos': '記号', 'pos1': '括弧開'}
{'surface': '計算', 'base': '計算', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': '機', 'base': '機', 'pos': '名詞', 'pos1': '接尾'}
{'surface': '(', 'base': '(', 'pos': '記号', 'pos1': '括弧開'}
{'surface': 'コンピュータ', 'base': 'コンピュータ', 'pos': '名詞', 'pos1': '一般'}
{'surface': ')', 'base': ')', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'による', 'base': 'による', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '知的', 'base': '知的', 'pos': '名詞', 'pos1': '形容動詞語幹'}
{'surface': 'な', 'base': 'だ', 'pos': '助動詞', 'pos1': '*'}
{'surface': '情報処理', 'base': '情報処理', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'システム', 'base': 'システム', 'pos': '名詞', 'pos1': '一般'}
{'surface': 'の', 'base': 'の', 'pos': '助詞', 'pos1': '連体化'}
{'surface': '設計', 'base': '設計', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'や', 'base': 'や', 'pos': '助詞', 'pos1': '並立助詞'}
{'surface': '実現', 'base': '実現', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': 'に関する', 'base': 'に関する', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': '研究', 'base': '研究', 'pos': '名詞', 'pos1': 'サ変接続'}
{'surface': '分野', 'base': '分野', 'pos': '名詞', 'pos1': '一般'}
{'surface': '」', 'base': '」', 'pos': '記号', 'pos1': '括弧閉'}
{'surface': 'と', 'base': 'と', 'pos': '助詞', 'pos1': '格助詞'}
{'surface': 'も', 'base': 'も', 'pos': '助詞', 'pos1': '係助詞'}
{'surface': 'さ', 'base': 'する', 'pos': '動詞', 'pos1': '自立'}
{'surface': 'れる', 'base': 'れる', 'pos': '動詞', 'pos1': '接尾'}
{'surface': '。', 'base': '。', 'pos': '記号', 'pos1': '句点'}

41. 係り受け解析結果の読み込み(文節・係り受け)

40に加えて,文節を表すクラスChunkを実装せよ.このクラスは形態素(Morphオブジェクト)のリスト(morphs),係り先文節インデックス番号(dst),係り元文節インデックス番号のリスト(srcs)をメンバ変数に持つこととする.さらに,入力テキストの係り受け解析結果を読み込み,1文をChunkオブジェクトのリストとして表現し,冒頭の説明文の文節の文字列と係り先を表示せよ.本章の残りの問題では,ここで作ったプログラムを活用せよ.

文章は文(sentence)オブジェクトのリストで表され、文オブジェクトは文節(chunk)オブジェクトのリストを要素に持ち、文節オブジェクトは形態素(morph)オブジェクトのリストを要素に持つ階層構造を考え、ここでは指定のクラスChunkに加え、Sentenceを実装しています。 なお、Chunkオブジェクトの要素である係り元文節インデックス番号のリスト(srcs)の作成には1文のすべての文節情報を必要とするため、Sentenceオブジェクトの初期化時に作成しています。

class Chunk():
  def __init__(self, morphs, dst):
    self.morphs = morphs
    self.dst = dst
    self.srcs = []


class Sentence():
  def __init__(self, chunks):
    self.chunks = chunks
    for i, chunk in enumerate(self.chunks):
      if chunk.dst != -1:
        self.chunks[chunk.dst].srcs.append(i)
filename = './ai.ja.txt.parsed'

sentences = []
chunks = []
morphs = []
with open(filename, mode='r') as f:
  for line in f:
    if line[0] == '*':  # 係り受け関係を表す行:直前の文節の情報にChunkを適用し文節リストに追加 + 直後の文節の係り先を取得
      if len(morphs) > 0:
        chunks.append(Chunk(morphs, dst))
        morphs = []
      dst = int(line.split(' ')[2].rstrip('D'))
    elif line != 'EOS\n':  # 文末以外:Morphを適用し形態素リストに追加
      morphs.append(Morph(line))
    else:  # 文末:直前の文節の情報にChunkを適用し文節リストに追加 + 文節リストにSentenceを適用し文リストに追加
      chunks.append(Chunk(morphs, dst))
      sentences.append(Sentence(chunks))
      morphs = []
      chunks = []
      dst = None

# 確認
for chunk in sentences[2].chunks:
  print([morph.surface for morph in chunk.morphs], chunk.dst, chunk.srcs)
--- 出力 ---
['人工', '知能'] 17 []
['(', 'じん', 'こうち', 'のう', '、', '、'] 17 []
['AI'] 3 []
['〈', 'エーアイ', '〉', ')', 'と', 'は', '、'] 17 [2]
['「', '『', '計算'] 5 []
['(', ')', '』', 'という'] 9 [4]
['概念', 'と'] 9 []
['『', 'コンピュータ'] 8 []
['(', ')', '』', 'という'] 9 [7]
['道具', 'を'] 10 [5, 6, 8]
['用い', 'て'] 12 [9]
['『', '知能', '』', 'を'] 12 []
['研究', 'する'] 13 [10, 11]
['計算', '機', '科学'] 14 [12]
['(', ')', 'の'] 15 [13]
['一', '分野', '」', 'を'] 16 [14]
['指す'] 17 [15]
['語', '。'] 34 [0, 1, 3, 16]
['「', '言語', 'の'] 20 []
['理解', 'や'] 20 []
['推論', '、'] 21 [18, 19]
['問題', '解決', 'など', 'の'] 22 [20]
['知的', '行動', 'を'] 24 [21]
['人間', 'に'] 24 []
['代わっ', 'て'] 26 [22, 23]
['コンピューター', 'に'] 26 []
['行わ', 'せる'] 27 [24, 25]
['技術', '」', '、', 'または', '、'] 34 [26]
['「', '計算', '機'] 29 []
['(', 'コンピュータ', ')', 'による'] 31 [28]
['知的', 'な'] 31 []
['情報処理', 'システム', 'の'] 33 [29, 30]
['設計', 'や'] 33 []
['実現', 'に関する'] 34 [31, 32]
['研究', '分野', '」', 'と', 'も'] 35 [17, 27, 33]
['さ', 'れる', '。'] -1 [34]

42. 係り元と係り先の文節の表示

係り元の文節と係り先の文節のテキストをタブ区切り形式ですべて抽出せよ.ただし,句読点などの記号は出力しないようにせよ.

sentence = sentences[2]
for chunk in sentence.chunks:
  if int(chunk.dst) != -1:
    modifier = ''.join([morph.surface if morph.pos != '記号' else '' for morph in chunk.morphs])
    modifiee = ''.join([morph.surface if morph.pos != '記号' else '' for morph in sentence.chunks[int(chunk.dst)].morphs])
    print(modifier, modifiee, sep='\t')
--- 出力 ---
人工知能    語
じんこうちのう   語
AI  エーアイとは
エーアイとは  語
計算  という
という   道具を
概念と   道具を
コンピュータ  という
という   道具を
道具を   用いて
用いて   研究する
知能を   研究する
研究する    計算機科学
計算機科学 の
の 一分野を
一分野を    指す
指す  語
語 研究分野とも
言語の   推論
理解や   推論
推論  問題解決などの
問題解決などの   知的行動を
知的行動を 代わって
人間に   代わって
代わって    行わせる
コンピューターに    行わせる
行わせる    技術または
技術または 研究分野とも
計算機   コンピュータによる
コンピュータによる 情報処理システムの
知的な   情報処理システムの
情報処理システムの 実現に関する
設計や   実現に関する
実現に関する  研究分野とも
研究分野とも  される

43. 名詞を含む文節が動詞を含む文節に係るものを抽出

名詞を含む文節が,動詞を含む文節に係るとき,これらをタブ区切り形式で抽出せよ.ただし,句読点などの記号は出力しないようにせよ.

sentence = sentences[2]
for chunk in sentence.chunks:
  if int(chunk.dst) != -1:
    modifier = ''.join([morph.surface if morph.pos != '記号' else '' for morph in chunk.morphs])
    modifier_pos = [morph.pos for morph in chunk.morphs]
    modifiee = ''.join([morph.surface if morph.pos != '記号' else '' for morph in sentence.chunks[int(chunk.dst)].morphs])
    modifiee_pos = [morph.pos for morph in sentence.chunks[int(chunk.dst)].morphs]
    if '名詞' in modifier_pos and '動詞' in modifiee_pos:
      print(modifier, modifiee, sep='\t')
--- 出力 ---
道具を   用いて
知能を   研究する
一分野を    指す
知的行動を 代わって
人間に   代わって
コンピューターに    行わせる
研究分野とも  される

44. 係り受け木の可視化

与えられた文の係り受け木を有向グラフとして可視化せよ.可視化には,Graphviz等を用いるとよい.

係り元と係り先の文節のペアを作成し、pydotのgraph_from_edgesに渡すことで、グラフを作成しています。 なお、表層形そのままでは1文内に同じ文字列の文節が複数回出てきた場合に区別できないため、末尾にIDを付与して表示しています。

# 日本語表示用フォントのインストール
!apt install fonts-ipafont-gothic
import pydot
from IPython.display import Image,display_png
from graphviz import Digraph
 
sentence = sentences[7]
edges = []
for id, chunk in enumerate(sentence.chunks):
  if int(chunk.dst) != -1:
    modifier = ''.join([morph.surface if morph.pos != '記号' else '' for morph in chunk.morphs] + ['(' + str(id) + ')'])
    modifiee = ''.join([morph.surface if morph.pos != '記号' else '' for morph in sentence.chunks[int(chunk.dst)].morphs] + ['(' + str(chunk.dst) + ')'])
    edges.append([modifier, modifiee])
n = pydot.Node('node')
n.fontname = 'IPAGothic'
g = pydot.graph_from_edges(edges, directed=True)
g.add_node(n)
g.write_png('./ans44.png')
display_png(Image('./ans44.png'))

45. 動詞の格パターンの抽出

今回用いている文章をコーパスと見なし,日本語の述語が取りうる格を調査したい. 動詞を述語,動詞に係っている文節の助詞を格と考え,述語と格をタブ区切り形式で出力せよ. ただし,出力は以下の仕様を満たすようにせよ.

  • 動詞を含む文節において,最左の動詞の基本形を述語とする
  • 述語に係る助詞を格とする
  • 述語に係る助詞(文節)が複数あるときは,すべての助詞をスペース区切りで辞書順に並べる

このプログラムの出力をファイルに保存し,以下の事項をUNIXコマンドを用いて確認せよ.

  • コーパス中で頻出する述語と格パターンの組み合わせ
  • 「行う」「なる」「与える」という動詞の格パターン(コーパス中で出現頻度の高い順に並べよ)
with open('./ans45.txt', 'w') as f:
  for sentence in sentences:
    for chunk in sentence.chunks:
      for morph in chunk.morphs:
        if morph.pos == '動詞':  # chunkの左から順番に動詞を探す
          cases = []
          for src in chunk.srcs:  # 見つけた動詞の係り元chunkから助詞を探す
            cases = cases + [morph.surface for morph in sentence.chunks[src].morphs if morph.pos == '助詞']
          if len(cases) > 0:  # 助詞が見つかった場合は重複除去後辞書順にソートして出力
            cases = sorted(list(set(cases)))
            line = '{}\t{}'.format(morph.base, ' '.join(cases))
            print(line, file=f)
          break
# 確認
!cat ./ans45.txt | sort | uniq -c | sort -nr | head -n 10
--- 出力 ---
    136 する  を
    100 する  て を
     44 する  て で は
     15 ある  が て に は
      9 行う  を
      7 呼ぶ  も
      6 基づく   に
      6 なる  から で と
      6 する  から を
      5 関わる   に も
!cat ./ans45.txt | grep '行う' | sort | uniq -c | sort -nr | head -n 5
--- 出力 ---
      9 行う  を
      5 行う  て に
      4 行う  て に を
      1 行う  まで を
      1 行う  から
!cat ./ans45.txt | grep 'なる' | sort | uniq -c | sort -nr | head -n 5
--- 出力 ---
      8 なる  が と
      6 なる  に
      5 なる  が て と
      1 異なる   が で
      1 異なる   も
!cat ./ans45.txt | grep '与える' | sort | uniq -c | sort -nr | head -n 5
--- 出力 ---
      1 与える   が など に
      1 与える   に は を
      1 与える   が に

46. 動詞の格フレーム情報の抽出

45のプログラムを改変し,述語と格パターンに続けて項(述語に係っている文節そのもの)をタブ区切り形式で出力せよ.45の仕様に加えて,以下の仕様を満たすようにせよ.

  • 項は述語に係っている文節の単語列とする(末尾の助詞を取り除く必要はない)
  • 述語に係る文節が複数あるときは,助詞と同一の基準・順序でスペース区切りで並べる
with open('./ans46.txt', 'w') as f:
  for sentence in sentences:
    for chunk in sentence.chunks:
      for morph in chunk.morphs:
        if morph.pos == '動詞':  # chunkの左から順番に動詞を探す
          cases = []
          modi_chunks = []
          for src in chunk.srcs:  # 見つけた動詞の係り元chunkから助詞を探す
            case = [morph.surface for morph in sentence.chunks[src].morphs if morph.pos == '助詞']
            if len(case) > 0:  # 助詞を含むchunkの場合は助詞と項を取得
              cases = cases + case
              modi_chunks.append(''.join(morph.surface for morph in sentence.chunks[src].morphs if morph.pos != '記号'))
          if len(cases) > 0:  # 助詞が1つ以上見つかった場合は重複除去後辞書順にソートし、項と合わせて出力
            cases = sorted(list(set(cases)))
            line = '{}\t{}\t{}'.format(morph.base, ' '.join(cases), ' '.join(modi_chunks))
            print(line, file=f)
          break
# 確認
!cat ./ans46.txt | head -n 10
--- 出力 ---
用いる   を 道具を
する  て を 用いて 知能を
指す  を 一分野を
代わる   に を 知的行動を 人間に
行う  て に 代わって コンピューターに
する  と も 研究分野とも
述べる   で に の は 解説で 佐藤理史は 次のように
する  で を 知的能力を コンピュータ上で
する  を 推論判断を
する  を 画像データを

47. 機能動詞構文のマイニング

動詞のヲ格にサ変接続名詞が入っている場合のみに着目したい.46のプログラムを以下の仕様を満たすように改変せよ.

  • 「サ変接続名詞+を(助詞)」で構成される文節が動詞に係る場合のみを対象とする 述語は「サ変接続名詞+を+動詞の基本形」とし,文節中に複数の動詞があるときは,最左の動詞を用いる
  • 述語に係る助詞(文節)が複数あるときは,すべての助詞をスペース区切りで辞書順に並べる
  • 述語に係る文節が複数ある場合は,すべての項をスペース区切りで並べる(助詞の並び順と揃えよ)

このプログラムの出力をファイルに保存し,以下の事項をUNIXコマンドを用いて確認せよ.

  • コーパス中で頻出する述語(サ変接続名詞+を+動詞)
  • コーパス中で頻出する述語と助詞パターン
with open('./ans47.txt', 'w') as f:
  for sentence in sentences:
    for chunk in sentence.chunks:
      for morph in chunk.morphs:
        if morph.pos == '動詞':  # chunkの左から順番に動詞を探す
          for i, src in enumerate(chunk.srcs):  # 見つけた動詞の係り元chunkが「サ変接続名詞+を」で構成されるか確認
            if len(sentence.chunks[src].morphs) == 2 and sentence.chunks[src].morphs[0].pos1 == 'サ変接続' and sentence.chunks[src].morphs[1].surface == 'を':
              predicate = ''.join([sentence.chunks[src].morphs[0].surface, sentence.chunks[src].morphs[1].surface, morph.base])
              cases = []
              modi_chunks = []
              for src_r in chunk.srcs[:i] + chunk.srcs[i + 1:]:  # 残りの係り元chunkから助詞を探す
                case = [morph.surface for morph in sentence.chunks[src_r].morphs if morph.pos == '助詞']
                if len(case) > 0:  # 助詞を含むchunkの場合は助詞と項を取得
                  cases = cases + case
                  modi_chunks.append(''.join(morph.surface for morph in sentence.chunks[src_r].morphs if morph.pos != '記号'))
              if len(cases) > 0:  # 助詞が1つ以上見つかった場合は重複除去後辞書順にソートし、項と合わせて出力
                cases = sorted(list(set(cases)))
                line = '{}\t{}\t{}'.format(predicate, ' '.join(cases), ' '.join(modi_chunks))
                print(line, file=f)
              break
# 確認
!cat ./ans47.txt | cut -f 1 | sort | uniq -c | sort -nr | head -n 10
--- 出力 ---
      3 注目を集める
      2 運転をする
      2 話をする
      2 研究をいる
      2 特許をする
      1 開発を行う
      1 進化を見せる
      1 進化をいる
      1 追及を受ける
      1 議論を行う
!cat ./ans47.txt | cut -f 1,2 | sort | uniq -c | sort -nr | head -n 10
--- 出力 ---
      2 話をする    は
      2 特許をする が に まで
      2 注目を集める  が
      1 開発を行う は
      1 運転をする て に
      1 運転をする に
      1 進化を見せる  て において は
      1 進化をいる て において は
      1 追及を受ける  て で と とともに は
      1 議論を行う まで

48. 名詞から根へのパスの抽出

文中のすべての名詞を含む文節に対し,その文節から構文木の根に至るパスを抽出せよ. ただし,構文木上のパスは以下の仕様を満たすものとする.

  • 各文節は(表層形の)形態素列で表現する
  • パスの開始文節から終了文節に至るまで,各文節の表現を” -> “で連結する
sentence = sentences[2]
for chunk in sentence.chunks:
  if '名詞' in [morph.pos for morph in chunk.morphs]:  # chunkが名詞を含むか確認
    path = [''.join(morph.surface for morph in chunk.morphs if morph.pos != '記号')]
    while chunk.dst != -1:  # 名詞を含むchunkを先頭に、dstを根まで順に辿ってリストに追加
      path.append(''.join(morph.surface for morph in sentence.chunks[chunk.dst].morphs if morph.pos != '記号'))
      chunk = sentence.chunks[chunk.dst]
    print(' -> '.join(path))
--- 出力 ---
人工知能 -> 語 -> 研究分野とも -> される
じんこうちのう -> 語 -> 研究分野とも -> される
AI -> エーアイとは -> 語 -> 研究分野とも -> される
エーアイとは -> 語 -> 研究分野とも -> される
計算 -> という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
概念と -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
コンピュータ -> という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
知能を -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
一分野を -> 指す -> 語 -> 研究分野とも -> される
語 -> 研究分野とも -> される
言語の -> 推論 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
理解や -> 推論 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
推論 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
知的行動を -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
人間に -> 代わって -> 行わせる -> 技術または -> 研究分野とも -> される
コンピューターに -> 行わせる -> 技術または -> 研究分野とも -> される
技術または -> 研究分野とも -> される
計算機 -> コンピュータによる -> 情報処理システムの -> 実現に関する -> 研究分野とも -> される
コンピュータによる -> 情報処理システムの -> 実現に関する -> 研究分野とも -> される
知的な -> 情報処理システムの -> 実現に関する -> 研究分野とも -> される
情報処理システムの -> 実現に関する -> 研究分野とも -> される
設計や -> 実現に関する -> 研究分野とも -> される
実現に関する -> 研究分野とも -> される
研究分野とも -> される

49. 名詞間の係り受けパスの抽出

文中のすべての名詞句のペアを結ぶ最短係り受けパスを抽出せよ.ただし,名詞句ペアの文節番号が i j i< j)のとき,係り受けパスは以下の仕様を満たすものとする.

  • 問題48と同様に,パスは開始文節から終了文節に至るまでの各文節の表現(表層形の形態素列)を” -> “で連結して表現する
  • 文節 i jに含まれる名詞句はそれぞれ,XとYに置換する

また,係り受けパスの形状は,以下の2通りが考えられる.

  • 文節 iから構文木の根に至る経路上に文節 jが存在する場合: 文節 iから文節 jのパスを表示
  • 上記以外で,文節 iと文節 jから構文木の根に至る経路上で共通の文節 kで交わる場合: 文節 iから文節 kに至る直前のパスと文節 jから文節 kに至る直前までのパス,文節 kの内容を” | “で連結して表示

例えば、

  • i -> a -> b -> j -> 根 であれば、 i -> a -> b -> j
  • i -> a -> k -> 根j -> b -> k -> 根 であれば、i -> a | j -> b | k

とし、 i jの名詞をそれぞれX、Yに変換して表示すればよいことになります。

from itertools import combinations
import re

sentence = sentences[2]
nouns = []
for i, chunk in enumerate(sentence.chunks):
  if '名詞' in [morph.pos for morph in chunk.morphs]:  # 名詞を含む文節を抽出
    nouns.append(i)
for i, j in combinations(nouns, 2):  # 名詞を含む文節のペアごとにパスを作成
  path_i = []
  path_j = []
  while i != j:
    if i < j:
      path_i.append(i)
      i = sentence.chunks[i].dst
    else:
      path_j.append(j)
      j = sentence.chunks[j].dst
  if len(path_j) == 0:  # 1つ目のケース
    chunk_X = ''.join([morph.surface if morph.pos != '名詞' else 'X' for morph in sentence.chunks[path_i[0]].morphs])
    chunk_Y = ''.join([morph.surface if morph.pos != '名詞' else 'Y' for morph in sentence.chunks[i].morphs])
    chunk_X = re.sub('X+', 'X', chunk_X)
    chunk_Y = re.sub('Y+', 'Y', chunk_Y)
    path_XtoY = [chunk_X] + [''.join(morph.surface for morph in sentence.chunks[n].morphs) for n in path_i[1:]] + [chunk_Y]
    print(' -> '.join(path_XtoY))
  else:  # 2つ目のケース
    chunk_X = ''.join([morph.surface if morph.pos != '名詞' else 'X' for morph in sentence.chunks[path_i[0]].morphs])
    chunk_Y = ''.join([morph.surface if morph.pos != '名詞' else 'Y' for morph in sentence.chunks[path_j[0]].morphs])
    chunk_k = ''.join([morph.surface for morph in sentence.chunks[i].morphs])
    chunk_X = re.sub('X+', 'X', chunk_X)
    chunk_Y = re.sub('Y+', 'Y', chunk_Y)
    path_X = [chunk_X] + [''.join(morph.surface for morph in sentence.chunks[n].morphs) for n in path_i[1:]]
    path_Y = [chunk_Y] + [''.join(morph.surface for morph in sentence.chunks[n].morphs) for n in path_j[1:]]
    print(' | '.join([' -> '.join(path_X), ' -> '.join(path_Y), chunk_k]))
--- 出力 ---
X | (Yのう、、 | 語。
X | Y -> 〈エーアイ〉)とは、 | 語。
X | 〈Y〉)とは、 | 語。
X | 「『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | Yと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | 『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | Yを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | 『Y』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | Yする -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X | Y -> ()の -> 一分野」を -> 指す | 語。
X | Y」を -> 指す | 語。
X -> Y。
X -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 語。 | Y」、または、 | 研究分野」とも
X -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 語。 | Yの -> 実現に関する | 研究分野」とも
X -> 語。 | Yや -> 実現に関する | 研究分野」とも
X -> 語。 | Yに関する | 研究分野」とも
X -> 語。 -> Y」とも
(Xのう、、 | Y -> 〈エーアイ〉)とは、 | 語。
(Xのう、、 | 〈Y〉)とは、 | 語。
(Xのう、、 | 「『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | Yと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | 『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | Yを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | 『Y』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | Yする -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | Y -> ()の -> 一分野」を -> 指す | 語。
(Xのう、、 | Y」を -> 指す | 語。
(Xのう、、 -> Y。
(Xのう、、 -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | Y」、または、 | 研究分野」とも
(Xのう、、 -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
(Xのう、、 -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
(Xのう、、 -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
(Xのう、、 -> 語。 | Yの -> 実現に関する | 研究分野」とも
(Xのう、、 -> 語。 | Yや -> 実現に関する | 研究分野」とも
(Xのう、、 -> 語。 | Yに関する | 研究分野」とも
(Xのう、、 -> 語。 -> Y」とも
X -> 〈Y〉)とは、
X -> 〈エーアイ〉)とは、 | 「『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | Yと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | 『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | Yを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | 『Y』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | Yする -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | Y -> ()の -> 一分野」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 | Y」を -> 指す | 語。
X -> 〈エーアイ〉)とは、 -> Y。
X -> 〈エーアイ〉)とは、 -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Y」、または、 | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yの -> 実現に関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yや -> 実現に関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 | Yに関する | 研究分野」とも
X -> 〈エーアイ〉)とは、 -> 語。 -> Y」とも
〈X〉)とは、 | 「『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | Yと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | 『Y -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | Yを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | 『Y』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | Yする -> 計算機科学 -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | Y -> ()の -> 一分野」を -> 指す | 語。
〈X〉)とは、 | Y」を -> 指す | 語。
〈X〉)とは、 -> Y。
〈X〉)とは、 -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | Y」、または、 | 研究分野」とも
〈X〉)とは、 -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
〈X〉)とは、 -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
〈X〉)とは、 -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
〈X〉)とは、 -> 語。 | Yの -> 実現に関する | 研究分野」とも
〈X〉)とは、 -> 語。 | Yや -> 実現に関する | 研究分野」とも
〈X〉)とは、 -> 語。 | Yに関する | 研究分野」とも
〈X〉)とは、 -> 語。 -> Y」とも
「『X -> ()』という | Yと | 道具を
「『X -> ()』という | 『Y -> ()』という | 道具を
「『X -> ()』という -> Yを
「『X -> ()』という -> 道具を -> 用いて | 『Y』を | 研究する
「『X -> ()』という -> 道具を -> 用いて -> Yする
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> Y
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> Y」を
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
「『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
Xと | 『Y -> ()』という | 道具を
Xと -> Yを
Xと -> 道具を -> 用いて | 『Y』を | 研究する
Xと -> 道具を -> 用いて -> Yする
Xと -> 道具を -> 用いて -> 研究する -> Y
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> Y」を
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
Xと -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
『X -> ()』という -> Yを
『X -> ()』という -> 道具を -> 用いて | 『Y』を | 研究する
『X -> ()』という -> 道具を -> 用いて -> Yする
『X -> ()』という -> 道具を -> 用いて -> 研究する -> Y
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> Y」を
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
『X -> ()』という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
Xを -> 用いて | 『Y』を | 研究する
Xを -> 用いて -> Yする
Xを -> 用いて -> 研究する -> Y
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> Y」を
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
Xを -> 用いて -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
『X』を -> Yする
『X』を -> 研究する -> Y
『X』を -> 研究する -> 計算機科学 -> ()の -> Y」を
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
『X』を -> 研究する -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
Xする -> Y
Xする -> 計算機科学 -> ()の -> Y」を
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> Y。
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
Xする -> 計算機科学 -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
X -> ()の -> Y」を
X -> ()の -> 一分野」を -> 指す -> Y。
X -> ()の -> 一分野」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 | Yに関する | 研究分野」とも
X -> ()の -> 一分野」を -> 指す -> 語。 -> Y」とも
X」を -> 指す -> Y。
X」を -> 指す -> 語。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | Y」、または、 | 研究分野」とも
X」を -> 指す -> 語。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」を -> 指す -> 語。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」を -> 指す -> 語。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」を -> 指す -> 語。 | Yの -> 実現に関する | 研究分野」とも
X」を -> 指す -> 語。 | Yや -> 実現に関する | 研究分野」とも
X」を -> 指す -> 語。 | Yに関する | 研究分野」とも
X」を -> 指す -> 語。 -> Y」とも
X。 | 「Yの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Yや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Y、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Yなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Yを -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Yに -> 代わって -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Yに -> 行わせる -> 技術」、または、 | 研究分野」とも
X。 | Y」、または、 | 研究分野」とも
X。 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X。 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X。 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X。 | Yの -> 実現に関する | 研究分野」とも
X。 | Yや -> 実現に関する | 研究分野」とも
X。 | Yに関する | 研究分野」とも
X。 -> Y」とも
「Xの | Yや | 推論、
「Xの -> Y、
「Xの -> 推論、 -> Yなどの
「Xの -> 推論、 -> 問題解決などの -> Yを
「Xの -> 推論、 -> 問題解決などの -> 知的行動を | Yに | 代わって
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって | Yに | 行わせる
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> Y」、または、
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
「Xの -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
Xや -> Y、
Xや -> 推論、 -> Yなどの
Xや -> 推論、 -> 問題解決などの -> Yを
Xや -> 推論、 -> 問題解決などの -> 知的行動を | Yに | 代わって
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって | Yに | 行わせる
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> Y」、または、
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
Xや -> 推論、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
X、 -> Yなどの
X、 -> 問題解決などの -> Yを
X、 -> 問題解決などの -> 知的行動を | Yに | 代わって
X、 -> 問題解決などの -> 知的行動を -> 代わって | Yに | 行わせる
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> Y」、または、
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
X、 -> 問題解決などの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
Xなどの -> Yを
Xなどの -> 知的行動を | Yに | 代わって
Xなどの -> 知的行動を -> 代わって | Yに | 行わせる
Xなどの -> 知的行動を -> 代わって -> 行わせる -> Y」、または、
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
Xなどの -> 知的行動を -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
Xを | Yに | 代わって
Xを -> 代わって | Yに | 行わせる
Xを -> 代わって -> 行わせる -> Y」、または、
Xを -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
Xを -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
Xに -> 代わって | Yに | 行わせる
Xに -> 代わって -> 行わせる -> Y」、または、
Xに -> 代わって -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
Xに -> 代わって -> 行わせる -> 技術」、または、 -> Y」とも
Xに -> 行わせる -> Y」、または、
Xに -> 行わせる -> 技術」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 | Yの -> 実現に関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 | Yや -> 実現に関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 | Yに関する | 研究分野」とも
Xに -> 行わせる -> 技術」、または、 -> Y」とも
X」、または、 | 「Y -> (コンピュータ)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」、または、 | (Y)による -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」、または、 | Yな -> 情報処理システムの -> 実現に関する | 研究分野」とも
X」、または、 | Yの -> 実現に関する | 研究分野」とも
X」、または、 | Yや -> 実現に関する | 研究分野」とも
X」、または、 | Yに関する | 研究分野」とも
X」、または、 -> Y」とも
「X -> (Y)による
「X -> (コンピュータ)による | Yな | 情報処理システムの
「X -> (コンピュータ)による -> Yの
「X -> (コンピュータ)による -> 情報処理システムの | Yや | 実現に関する
「X -> (コンピュータ)による -> 情報処理システムの -> Yに関する
「X -> (コンピュータ)による -> 情報処理システムの -> 実現に関する -> Y」とも
(X)による | Yな | 情報処理システムの
(X)による -> Yの
(X)による -> 情報処理システムの | Yや | 実現に関する
(X)による -> 情報処理システムの -> Yに関する
(X)による -> 情報処理システムの -> 実現に関する -> Y」とも
Xな -> Yの
Xな -> 情報処理システムの | Yや | 実現に関する
Xな -> 情報処理システムの -> Yに関する
Xな -> 情報処理システムの -> 実現に関する -> Y」とも
Xの | Yや | 実現に関する
Xの -> Yに関する
Xの -> 実現に関する -> Y」とも
Xや -> Yに関する
Xや -> 実現に関する -> Y」とも
Xに関する -> Y」とも

理解を深めるためのオススメ教材

全100問の解答はこちら