示例#1
0
from knock40 import Morph
from knock41 import Chunks, chunk_list

if __name__ == '__main__':
    f = open('ai.ja.txt.parsed', 'r')
    sentences = chunk_list(f)

    for chank in sentences[2]:
        if chank.have('名詞') == True:
            print(chank.connect(), end='')
            next_chank = sentences[2][chank.dst]
            while True:
                if next_chank.dst == -1:
                    print(' -> ' + next_chank.connect())
                    break
                print(' -> ' + next_chank.connect(), end='')
                next_chank = sentences[2][next_chank.dst]
'''

人工知能 -> 語 -> 研究分野とも -> される
じんこうちのう -> 語 -> 研究分野とも -> される
AI -> エーアイとは -> 語 -> 研究分野とも -> される
エーアイとは -> 語 -> 研究分野とも -> される
計算 -> という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
概念と -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
コンピュータ -> という -> 道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
道具を -> 用いて -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
知能を -> 研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
研究する -> 計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
計算機科学 -> の -> 一分野を -> 指す -> 語 -> 研究分野とも -> される
一分野を -> 指す -> 語 -> 研究分野とも -> される
示例#2
0
    return sentences


# combiの続きを作る
def make_combi(combi, dic):
    if combi[-1] is not None:
        combi.append(dic[combi[-1]])
        return make_combi(combi, dic)
    else:
        return combi


def write_file(combi, file_name):
    with open(file_name, 'w') as f:
        for line in combi:
            for pair in line:
                for i, phrase in enumerate(pair):
                    f.write(f'{phrase.phrase_surface()}')
                    if i < len(pair) - 1:
                        f.write(' -> ')
                    else:
                        f.write('\n')


if __name__ == '__main__':
    text = 'neko.txt.cabocha'
    sentences = chunk_list(text)
    dict_srcs_dst = srcs_dst_dict(sentences)
    result = extraction_noun(dict_srcs_dst)
    write_file(result, 'knock48.txt')