芋の独り言

当ブログへのアクセスは当ブログのプライバシーポリシーに同意したものとみなします.

Ubuntuに言語処理関連ツールをインストールする方法まとめ④

kusoimox.hatenablog.jp
でも書きましたが,こっちの方がよいかと思い,改めて形態素解析器をPythonから呼び出すスクリプトを紹介します.

def choice_analysis() -> str:
    analysis = input('choice analysis:')

    if analysis == 'mecab':
        dic = input('dic type?:')
        if dic == 'ipadic-neologd':
            return 'mecab -d $(echo `mecab-config --dicdir`"/mecab-ipadic-neologd")'
        elif dic == 'unidic-neologd':
            return 'mecab -d $(echo `mecab-config --dicdir`"/mecab-unidic-neologd")'
        else:
            return 'mecab'
    elif analysis == 'jumanpp':
        return 'jumanpp'
    elif analysis == 'kytea':
        if input('now?(y/n):') == 'y':
            return 'kytea -nows'
        else:
            return 'kytea'

def morphological(text: str):
    import subprocess
    
    cmd = "echo '{0}' | {1}".format(text,choice_analysis())
    proc = subprocess.Popen(
        cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE
        )
    stdout, stderr = proc.communicate()
    print(stdout.decode('utf-8'))
    if stderr != b'':
        raise(Exception(stderr.decode("utf-8")))

    return stdout.decode('utf-8').split("\n")

morphologicalメソッドにテキストを渡せば,形態素解析結果のリストが返却されます.

参考

前回とかの過去記事の山椒に載っけ忘れてたかもしれません.その場合はスミマセン...