Web ページのダウンロード,単語に切り分け,形態素解析(Python, Mecab, BeautifulSoap を使用)

前準備

Python のインストール(Windows上)

注:既にPython(バージョン3.12を推奨)がインストール済みの場合は,この手順は不要である.

winget(Windowsパッケージマネージャー)を使用してインストールを行う

  1. Windowsで,コマンドプロンプト管理者権限で起動する(手順:Windowsキーまたはスタートメニュー,「cmd」と入力,右クリックメニューなどで「管理者として実行」を選択)
  2. winget(Windowsパッケージマネージャー)が利用可能か確認する:
    winget --version
    
  3. Pythonのインストール(下のコマンドにより Python 3.12 がインストールされる).
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
    REM Python をシステム領域にインストール
    winget install --scope machine --id Python.Python.3.12 --id Python.Launcher -e --silent
    REM Python のパス
    set "INSTALL_PATH=C:\Program Files\Python312"
    echo %PATH% | find /i "%INSTALL_PATH%" >nul
    if errorlevel 1 setx PATH "%PATH%;%INSTALL_PATH%" /M >nul
    echo %PATH% | find /i "%INSTALL_PATH%\Scripts" >nul
    if errorlevel 1 setx PATH "%PATH%;%INSTALL_PATH%\Scripts" /M >nul
    
  4. 【関連する外部サイト】

    【サイト内の関連ページ】

    MeCab のインストール

    辞書の文字コードは UTF-8 を選ぶ.

    python の mecab, bs4 のインストール

    Windows では,コマンドプロンプトを管理者として実行する.

    次のコマンドを実行.

    python -m pip install mecab bs4
    

    日本語文書からの単語の切り出し,品詞の判定

    1. Python プログラムの実行

      Python プログラムの実行

      Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

      Python のまとめ: 別ページ »にまとめ

      日本語の文章から,単語を切り出し,品詞を自動判定する Python プログラム

      import sys
      import MeCab
      m = MeCab.Tagger("-Ochasen")
      print(m.parse ("日本国民は、正当に選挙された国会における代表者を通じて行動し"))
      

    Web ページのダウンロードと単語の切り出し

    1. Web ページのダウンロード

      URL を指定して,Web ページをダウンロード.そして,確認表示を行う Python プログラム.

      import urllib.request
      r =  urllib.request.urlopen('https://www.kkaneko.jp')
      html = r.read()
      print(html.decode())
      
    2. HTML タグの除去

      いまダウンロードした Web ページについて,BeautifulSoap を用いて,HTML タグを取り除く Python プログラム.テキストと JavaScript が残る.

      from bs4 import BeautifulSoup
      soup = BeautifulSoup(html,'html5lib')
      t = soup.get_text()
      print(t)
      
    3. プログラムの実行

      いまダウンロードした日本語の Web ページについて,MeCab を用いて,単語を切り出す Python プログラム

      import sys
      import MeCab
      m = MeCab.Tagger("-Ochasen")
      a = m.parse(t)
      words = [i.split()[0] for i in a.splitlines()]
      print(words)