日本語テキスト解析: カタカナ・アルファベット語の集計と名詞の出現頻度の調査

このビジュアルはAIの創造力を駆使して生成しました。(This visual was created using the full potential of AI's creativity.)
目次

学習目標

  1. 日本語テキスト解析における形態素解析ツール(MeCab)を用いて、文章を構造的に分解する方法を学ぶ。
  2. テキスト中の特徴的な要素(総文字数、カタカナ語、アルファベット語)を正規表現を活用して抽出・集計する技術を習得する。
  3. 名詞(一般名詞およびサ変接続名詞)の頻出単語を分析し、ランキング形式で結果を出力する方法を学ぶ。
  4. Pythonを使用してテキストのデータを処理・集計するプログラム構築スキルを向上させる。
  5. Google Colabを活用して、日本語テキスト解析の基礎を実践する。

1. Google Colabを開く

  1. Google Colab にアクセスします。
  2. Googleアカウントでログインします。
  3. 画面右下の「+ 新しいノートブック」をクリックして、新しいノートブックを作成します。

2. 必要なライブラリをインストール

最初のセルに以下のコードをコピーして貼り付けます。(Python)

        !apt-get -y install mecab libmecab-dev mecab-ipadic-utf8
        !pip install mecab-python3
        • このコードは、MeCab(形態素解析ツール)をGoogle Colab環境にインストールするものです。

        セルの左側にある再生ボタン(▶️)をクリックして実行します。

            3. プログラムを入力

            次のセルに以下のプログラムをコピーして貼り付けます。(Python)

              import re
              import MeCab
              from collections import Counter
              
              # 入力文書
              text = """
              コンプライアンス経営を説明したものはどれか。
              株主に対して企業活動の正当性を保持するために,経営管理が適切に行われているかどうかを監視し,点検する。
              株主やそのほかの利害関係者に対して,経営活動の内容,実績に関する説明責任を負う。
              企業倫理に基づき,ルール,マニュアル,チェックシステムなどを整備し,法令や社会規範を遵守した企業活動を行う。
              投資家やアナリストに対して,投資判断に必要な正確な経営情報を適時に,かつ継続して提供する。
              個人情報保護法において,“個人情報”の対象となるものはどれか。
              企業の名称,電話番号,住所など,特定の企業が識別できる情報
              記名方式で取得したアンケートから,回答だけを集計して作成した報告書
              氏名,生年月日,住所が記入された顧客台帳
              年代別顧客の人数分布と売上金額が表示された表
              システム開発に関するRFP(Request For Proposal)の提示元及び提示先として,適切なものはどれか。
              情報システム部門からCIOに提示する。
              情報システム部門からベンダに提示する。
              情報システム部門から利用部門に提示する。
              ベンダからCIOに提示する。
              商品市場での過当な競争を避け,まだ顧客のニーズが満たされていない市場のすきま,すなわち小さな市場セグメントに焦点を合わせた事業展開で,競争優位を確保しようとする企業戦略はどれか。
              ニッチ戦略
              プッシュ戦略
              ブランド戦略
              プル戦略
              情報技術を利用して顧客に関する情報を収集,分析し,長期的視点から顧客と良好な関係を築いて自社の顧客として囲い込み,収益の拡大を図る手法はどれか。
              BSC
              CRM
              ERP
              PPM
              SaaSを説明したものはどれか。
              コンピュータ設備の利用をサービスとして提供し,使用料を課金する。
              情報システム部門の機能の一部を受託し,業務委託料を課金する。
              ソフトウェアの機能を複数の企業にインターネット経由でサービスとして提供し,使用料を課金する。
              ソフトウェアをダウンロードさせる対価としてライセンス料を課金する。
              いずれも時価100円の四つの株式があり,そのうちの一つに投資したい。経済の成長が高成長,中成長,低成長の場合,それぞれの株式の予想値上がり幅が表のとおりであるとき,値上がり幅の期待値が最も高い株式はどれか。ここで,高成長,中成長,低成長になる確率はそれぞれ0.4,0.4,0.2であり,経済が成長しない場合は考えないものとする。
              A
              B
              C
              D
              POSシステムなどで商品を一意に識別するために,バーコードとして商品に印刷されたコードはどれか。
              JAN
              JAS
              JIS
              QR
              不正競争防止法の営業秘密に該当するものはどれか。
              インターネットで公開されている技術情報を印刷し,部外秘と表示してファイリングした資料
              限定された社員の管理下にあり,施錠した書庫に保管している,自社に関する不正取引の記録
              社外秘としての管理の有無にかかわらず,秘密保持義務を含んだ就業規則に従って勤務する社員が取り扱う書類
              秘密保持契約を締結した下請業者に対し,部外秘と表示して開示したシステム設計書
              プロダクトポートフォリオマネジメントでは,縦軸に市場成長率,横軸に市場占有率をとったマトリックス図を四つの象限に区分し,製品の市場における位置付けを分析して資源配分を検討する。四つの象限のうち,市場成長率は低いが市場占有率を高く保っている製品の位置付けはどれか。
              金のなる木
              花形製品
              負け犬
              問題児
              業務プロセスのモデルを説明したものはどれか。
              システム開発でプログラム作成に必要なデータ,機能などを記載したもの
              システム開発を外部委託するときの提案依頼に必要な条件を明示したもの
              システム化の対象となるビジネスの活動やデータの流れを明示したもの
              システムの開発,運用,保守に必要な組織,資源などを記載したもの
              サプライチェーンマネジメントの効果はどれか。
              小売店舗などの商品の販売情報を即時に知ることができる。
              知識や知見をデータベース化し,ビジネス上で効果的に活用できる。
              調達から製造,物流,販売までの一連のプロセスを改善し,納期,コストの最適化を図ることができる。
              電話,FAX,電子メールなど多様な手段による顧客からの各種問合せに対し,即時に対応することができる。
              株式会社の最高意思決定機関はどれか。
              株主総会
              監査役会
              代表取締役
              取締役会
              売価が20万円の新商品を売り出して,8,000万円を売り上げた。固定費は4,000万円であり,利益は2,000万円のマイナスであった。利益をマイナスにしないためには,あと何個以上売る必要があるか。
              100
              200
              400
              800
              知的財産権のうち,権利の発生のために申請や登録の手続を必要としないものはどれか。
              意匠権
              実用新案権
              著作権
              特許権
              損益計算書を説明したものはどれか。
              一会計期間における経営成績を表示したもの
              一会計期間における現金収支の状況を表示したもの
              企業の一定時点における財務状態を表示したもの
              純資産の部の変動額を計算し表示したもの
              グループウェア導入の目的として,適切なものはどれか。
              PC,周辺機器などの機器に組み込んで,ハードウェアの基本的な制御を行う。
              共同作業の場を提供することによって,組織としての業務効率を高める。
              ハードウェアとソフトウェアが一体となったセキュリティ製品の導入によって,企業におけるインターネット利用のセキュリティを強化する。
              パッケージ化されたソフトウェア群を導入することによって,システムの開発期間の短縮及び保守の効率化を図る。
              現在使っているキャッシュカードで,銀行口座からリアルタイムに代金を直接引き落として決済できるものはどれか。
              ETCカード
              デビットカード
              プリペイドカード
              ポイントカード
              コアコンピタンス経営を説明したものはどれか。
              競合企業に対して優位に立つために,既に事業を確立している他社の経営資源を獲得する。
              事業の組合せの最適化を図り,それぞれの事業を単独で運営する場合よりも大きな効果が得られるようにする。
              他社にまねのできない独自のノウハウや技術などに経営資源を集中し,競争優位を確立する。
              他社のベストプラクティス(優れた事例)を参考にして,現状の業務プロセスを抜本的に改善・改革する。
              BPRを説明したものはどれか。
              顧客のニーズにきめ細かく対応し,顧客の利便性と満足度を高めるために,企業の情報システムを再構築すること
              企業の活動を,調達,開発,製造,販売,サービスといった側面からとらえ,情報システムを再構築すること
              企業の業務効率や生産性を改善するために,既存の組織やビジネスルールを全面的に見直して,再構築すること
              企業の戦略を,四つの視点(財務の視点,顧客の視点,業務プロセスの視点,学習と成長の視点)から再評価し,再構築すること
              """
              
              # 総文字数
              total_characters = len(text)
              
              # カタカナ語のカウント(カタカナの連続を抽出)
              katakana_words = re.findall(r'[ァ-ヶー]+', text)
              katakana_count = len(katakana_words)
              
              # 2文字以上のアルファベット語のカウント(アルファベットの連続を抽出)
              alphabet_words = re.findall(r'\b[A-Za-z]{2,}\b', text)
              alphabet_count = len(alphabet_words)
              
              # MeCabの準備
              mecab = MeCab.Tagger("-Ochasen -r /etc/mecabrc")
              
              # 名詞のカウント用リスト
              noun_general = []  # 名詞-一般
              noun_sa_hen = []   # 名詞-サ変接続
              
              # 形態素解析と抽出
              node = mecab.parseToNode(text)
              while node:
                  feature = node.feature.split(",")
                  if feature[0] == "名詞":
                      if feature[1] == "一般":
                          noun_general.append(node.surface)
                      elif feature[1] == "サ変接続":
                          noun_sa_hen.append(node.surface)
                  node = node.next
              
              # 頻出語TOP5をカウント
              noun_general_counter = Counter(noun_general).most_common(5)
              noun_sa_hen_counter = Counter(noun_sa_hen).most_common(5)
              
              # 結果を表示
              print("総文字数:", total_characters)
              print("カタカナ語数:", katakana_count)
              print("2文字以上のアルファベット語数:", alphabet_count)
              
              print("\n名詞-一般 頻出TOP5")
              for word, count in noun_general_counter:
                  print(f"{word}: {count}回")
              
              print("\n名詞-サ変名詞 頻出TOP5")
              for word, count in noun_sa_hen_counter:
                  print(f"{word}: {count}回")
              

              セルの左側にある再生ボタン(▶️)をクリックして実行します。

                4. 実行結果を確認

                • プログラムが実行されると、結果がセルの下に出力されます。
                • 以下の情報が表示されます:
                  • 総文字数: 入力された文章全体の文字数。
                  • カタカナ語数: テキスト内に含まれるカタカナ語の数。
                  • 2文字以上のアルファベット語数: 2文字以上のアルファベット語の数。
                  • 名詞-一般 頻出TOP5: 名詞-一般に分類される単語の上位5語とその出現回数。
                  • 名詞-サ変名詞 頻出TOP5: 名詞-サ変接続に分類される単語の上位5語とその出現回数。

                注意事項

                • テキストを変更したい場合は、プログラム内の text = """...""" 部分を編集してください。
                • MeCabのインストールには数十秒かかる場合があります。1回インストールすれば再実行時に再インストールする必要はありません。
                よかったらシェアしてね!
                • URLをコピーしました!
                • URLをコピーしました!

                この記事を書いた人

                GoodMorning!

                デジタルの海原を冒険しながら、美食の宝を探し求める探検家です。テクノロジーの世界を舞台に、新しい発見を求めて、キーボードの海を横断。そして、実世界では、隅々まで足を運んで、舌鼓を打つ価値のある美味しいお店を見つけ出します。

                私の使命は、小さなITの豆知識から始まり、心を満たすグルメスポットの紹介まで、あなたの日常にちょっとしたスパイスを加えること。画面の向こう側から、気軽に楽しめる話題を届けたいのです。ここでは、私が「これは!」と思った技術的な小話や、舌の記憶に残るような食べ物屋さんを紹介していきます。

                このWebサイトは、ITとグルメ、二つの世界を融合させた、まさにデジタルと現実の融合点。ふらっと立ち寄って、新たな発見や、ほっこりするような話題で一息ついていただけたら幸いです。知識の海を冒険し、味覚の旅を楽しみましょう。毎日を少しだけ特別なものに変える、そんな情報をお届けします。

                GoodMorning!

                I am an explorer who ventures across the digital sea in search of gastronomic treasures. In the world of technology, I traverse the sea of keyboards in search of new discoveries. And in the real world, I visit every nook and cranny to find a delicious restaurant worth tantalizing your taste buds.

                My mission is to add a little spice to your everyday life, starting with little IT tidbits and ending with foodie spots that fill your heart. I want to bring you topics that you can easily enjoy from the other side of the screen. Here, I'm going to share with you some of the technical tidbits and I will introduce small technical stories and food shops that will leave a lasting impression on your taste buds.

                This Web site is truly a fusion point of digital and reality, combining the two worlds of IT and gourmet. I hope you will stop by and take a breather with new discoveries and dusty topics. Come explore the sea of knowledge and enjoy a journey of taste. I will bring you the information that will change your everyday life into something a little more special.

                目次