牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Python の「Yahoo!デベロッパーズネットワークの日本語形態素解析で分かち書きする」スクリプトを MeCab を使ってやってみるメモ

」メモ

(python2.7.7)

元ネタ

リスト1 形態素解析を使って,わかち書きをする(morphological.py)

Yahoo!デベロッパーズネットワークの日本語形態素解析が使われているので MeCab を使ってやってみる

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MeCab


def split(doc_uni, word_class=["形容詞", "形容動詞", "感動詞", "副詞", "連体詞", "名詞", "動詞"]):
    doc = doc_uni.encode('utf-8')
    m = MeCab.Tagger('-Ochasen')
    node = m.parseToNode(doc)
    word_list = []
    while node:
        if node.feature.split(",")[0] in word_class:
            # print node.surface, node.feature
            word_list.append(node.surface)
        node = node.next
    return [word.decode('utf-8', errors='replace') for word in word_list]


if __name__ == '__main__':
    doc = u'''Python(パイソン)は、オランダ人のグイド・ヴァンロッサムが作ったオープンソースのプログラミング言語。
オブジェクト指向スクリプト言語の一種であり、Perlとともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティパイソン』にちなんで名付けられた。
Pythonは英語で爬虫類のニシキヘビの意味で、Python言語のマスコットやアイコンとして使われることがある。Pythonは汎用の高水準言語である。プログラマの生産性とコードの信頼性を重視して設計されており、核となるシンタックスおよびセマンティクスは必要最小限に抑えられている反面、利便性の高い大規模な標準ライブラリを備えている。
Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。 多くのプラットフォームをサポートしており(動作するプラットフォーム)、また、豊富なドキュメント、豊富なライブラリがあることから、産業界でも利用が増えつつある。'''
    print ", ".join([s.encode("utf-8") for s in split(doc)])
結果
Python, パイソン, オランダ, 人, グイド・ヴァンロッサム, 作っ, オープン, ソース, プログラミング, 言語, オブジェクト, 指向, スクリプト, 言語, 一, 種, Perl, 欧米, 広く, 普及, し, いる, イギリス, テレビ局, BBC, 製作, し, コメディ, 番組, 空, 飛ぶ, モンティパイソン, ちなん, 名付け, られ, Python, 英語, 爬虫類, ニシキヘビ, 意味, Python, 言語, マスコット, アイコン, 使わ, れる, こと, ある, Python, 汎用, 高水準, 言語, プログラマ, 生産, 性, コード, 信頼, 性, 重視, し, 設計, さ, れ, おり, 核, なる, シンタックス, セマンティクス, 必要, 最小限, 抑え, られ, いる, 反面, 利便, 性, 高い, 規模, 標準, ライブラリ, 備え, いる, Unicode, 文字, 列, 操作, サポート, し, おり, 日本語, 処理, 標準, 可能, 多く, プラットフォーム, サポート, し, おり, 動作, する, プラットフォーム, 豊富, ドキュメント, 豊富, ライブラリ, ある, こと, 産業, 界, 利用, 増え, ある