Pythonで動かして学ぶ 自然言語処理入門(柳井 孝介 庄司 美沙)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Pythonで動かして学ぶ 自然言語処理入門

Pythonで動かして学ぶ 自然言語処理入門



形式:
書籍
発売日:
ISBN:
9784798156668
定価:
3,520(本体3,200円+税10%)
仕様:
B5変・304ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
紙の書籍

本書は、Pythonでプログラミングをした経験のある読者が、
各種オープンソースソフトウェア(OSS)やライブラリを利用して、
自然言語処理を行うWebアプリケーションを作って動かし、 自然言語処理を体験するための書籍です。

またその中で、自然言語処理に関連するさまざまな概念や手法、
簡単な理論についても学ぶことができ、本格的な学習の
前段階としても最適です。

本書の構成としては大きく2つの部に分かれており、
それぞれ以下のような内容を解説しています。

第1部:データの準備
●テキストデータの収集
●データベースへの格納
●検索エンジンへの登録

第2部:データの解析
●文法構造を調べる
●意味づけ
●知識データとの連係

全13章を順に追いながらWebアプリケーションを作っていくことで、
自然言語処理に関連するさまざまなテーマを学ぶことができます。

身近なテキストも、膨大な文書も、探す!使う!見える化する!

本書は、Pythonでのプログラミング経験がある人が、各種オープンソースソフトウェア(OSS)やライブラリを利用して、自然言語処理を行うWebアプリケーションを作って動かし、 自然言語処理を体験するための書籍です。またその中で、自然言語処理に関連するさまざまな概念や手法、簡単な理論についても学ぶことができ、本格的な学習の前段階としても最適です。


本書の構成としては大きく3つの部に分かれており、 それぞれ以下のような内容を解説しています。

本書の構成

第0章 自然言語処理とは

第1部 データを準備しよう
第1章 実行環境を整えよう
 1.1 実行環境の概要
 1.2 実行環境の構成
 1.3 Windows 10にUbuntuをインストールする
 1.4 Linuxコマンドの使い方
 1.5 Ubuntuへのソフトウェアのインストール方法
 1.6 Pythonプログラムを実行してみる
第2章 テキストデータを収集しよう
 2.1 データ収集とは
 2.2 Webページのスクレイピング
 2.3 テキストデータを抽出する
 2.4 テキストデータのクレンジング
 2.5 データ収集のプログラム
第3章 データベースに格納しよう
 3.1 データベースを使った検索エンジン
 3.2 データベースと検索エンジンの用途
 3.3 データベースを使ってみる
 3.4 Solrの設定とデータ登録
 3.5 Solrを使った検索

第2部 テキストデータを解析しよう
第4章 構文解析をしよう
 4.1 構文解析とは
 4.2 構文解析の用途
 4.3 係り受け構造とは
 4.4 CaboChaのセットアップ
 4.5 PythonからCaboChaを呼び出そう
 4.6 係り受け構造の解析結果のSQLiteへの格納
第5章 テキストにアノテーションを付ける
 5.1 アノテーションとは
 5.2 アノテーションの用途
 5.3 アノテーションのデータ構造
 5.4 正規表現のパターンによるテキストデータの解析
 5.5 精度指標:RecallとPrecision
 5.6 アノテーションのSQLiteへの格納
 5.7 正規表現の改良
 5.8 チャンクを使わない抽出アルゴリズムを考える
第6章 アノテーションを可視化する
 6.1 アノテーションを表示するWebアプリ
 6.2 アノテーションを可視化する必要性
 6.3 アノテーションツールbrat
 6.4 Webアプリケーション
 6.5 bratをWebアプリケーションに組み込もう
 6.6 SQLiteからアノテーションを取得して表示する
第7章 単語の頻度を数えよう
 7.1 テキストマイニングと単語の頻度
 7.2 統計的手法の用途
 7.3 単語の重要度とTF-IDF
 7.4 文書間の類似度
 7.5 言語モデルとN-gramモデル
 7.6 クラスタリングとLDA
第8章 知識データを活用しよう
 8.1 知識データと辞書
 8.2 エンティティ
 8.3 知識データを活用することでできること
 8.4 SPARQLによるDBpediaからの情報の呼び出し
 8.5 WordNetからの同義語・上位語の取得
 8.6 Word2Vecを用いた類語の取得

第3部 テキストデータを活用するWebアプリケーションを作ろう
第9章 テキストを検索しよう
 9.1 Solrを使った検索Webアプリケーション
 9.2 検索の用途
 9.3 転置インデックス
 9.4 プログラムからのSolrの検索
 9.5 Solrへのアノテーションデータの登録
 9.6 検索結果のWebアプリケーションでの表示
 9.7 検索時の同義語展開
 9.8 アノテーションでの検索
第10章 テキストを分類しよう
 10.1 テキスト分類とは
 10.2 テキスト分類の用途
 10.3 特徴量と特徴量抽出
 10.4 ルールベースによるテキスト分類
 10.5 教師あり学習によるテキスト分類
 10.6 ディープラーニングによるテキスト分類
 10.7 分類結果のWebアプリケーションでの表示
第11章 評判分析をしよう
 11.1 評判分析とは
 11.2 評判分析技術の用途
 11.3 辞書を用いた特徴量抽出
 11.4 TRIEを用いた辞書内語句マッチ
 11.5 教師あり学習による評判分析
 11.6 評判分析の結果を表示するWebアプリケーション
第12章 テキストからの情報抽出
 12.1 情報抽出とは
 12.2 情報抽出技術の用途
 12.3 関係のアノテーション
 12.4 正規表現を用いた関係抽出
 12.5 係り受け構造を用いた関係抽出
 12.6 抽出した関係をSolrに登録
 12.7 抽出した関係を表示するWebアプリケーション
第13章 系列ラベリングに挑戦しよう
 13.1 系列ラベリングとその特徴
 13.2 系列ラベリングの用途
 13.3 CRF(条件付き確率場)
 13.4 系列ラベリング用の学習データ
 13.5 CRF++を用いた学習
 13.6 CRF++の出力のアノテーションへの変換
 13.7 CRF++で付けたアノテーションをSolrで検索する

付録
 A.1 Wikipediaのダンプデータを使う
 A.2 PDF、Wordファイル、Excelファイルを使う

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

  • 著者からの補足情報

    刊行から2年がたち、本書で紹介しているライブラリも
    バージョンアップがされたものが多くなり、
    サンプルを動作させるために、ライブラリのバージョンについての
    お問い合わせを受けることが増えてきました。

    そこで、以下に本書で利用している各ライブラリの
    バージョンをまとめましたので、
    ・pip installコマンドを実行する際に、それぞれのバージョンを指定する
    ・作業フォルダにrequirements.txtファイルを以下の内容で作成し、
     pip install -r requirements.txtコマンドを実行する
    などの方法でご利用ください。

    ahocorapy==1.6.1
    beautifulsoup4==4.10.0
    bottle==0.12.19
    cabocha-python==0.69
    cchardet==2.1.7
    chainer==7.8.0
    click==8.0.1
    filelock==3.3.0
    future==0.18.2
    gensim==3.7.0
    importlib-metadata==4.8.1
    isodate==0.6.0
    joblib==1.0.1
    nltk==3.6.4
    numpy==1.19.5
    protobuf==3.18.1
    pyparsing==2.4.7
    rdflib==5.0.0
    regex==2021.9.30
    scikit-learn==0.20.2
    scipy==1.2.0
    six==1.16.0
    sklearn==0.0
    smart-open==5.2.1
    soupsieve==2.2.1
    SPARQLWrapper==1.8.5
    threadpoolctl==3.0.0
    tqdm==4.62.3
    typing-extensions==3.10.0.2
    zipp==3.6.0
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2019年02月12日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 027
リスト2.3 最下行
2刷
print('[block]':, block.text)
print('[block]:', block.text)
2019.01.28
1刷 029
リスト2.4
2刷
import re import unicodedata text = ' CLEANS ing によりテキストデータを変換すると トラブルが少なくなります。' print("Before:", text) text = unicodedata.normalize('NFKC', text) text = re.sub(r'\s+', '', text) print("After:", text)
import re import unicodedata text = ' CLEANS ing によりテキストデータを変換すると トラブルが少なくなります。' print("Before:", text) translation_table = str.maketrans(dict(zip('()!', '()!'))) text = unicodedata.normalize('NFKC', text).translate(translation_table)←❶ text = re.sub(r'\s+', '', text) print("After:", text)
2019.01.28
1刷 029
リスト2.5
2刷
import re import unicodedata from bs4 import BeautifulSoup def cleanse(text): text = unicodedata.normalize('NFKC', text) text = re.sub(r'\s+', ' ', text) (以下略)
import re import unicodedata from bs4 import BeautifulSoup translation_table = str.maketrans(dict(zip('()!', '()!'))) def cleanse(text): text = unicodedata.normalize('NFKC', text).translate(translation_table) text = re.sub(r'\s+', ' ', text) (以下略)
2019.01.28
1刷 029
「2.5 データ収集のプログラム」直前の段落
2刷
これにより、例えば半角カタカナは全角カタカナへ、全角英字は半角英字へ、全角空白記号は半角空白記号へ正規化されます。
これにより、例えば半角カタカナは全角カタカナへ、全角英字は半角英字へ、多くの全角記号は半角記号へ、全角空白記号は半角空白記号へ正規化されます。ただし、CaboChaの入力は全角記号を前提としているため、丸括弧と「!」を全角記号に戻しておきます。
2019.01.29
1刷 173
リスト9.8
2刷
import bottle import dbpediaknowledge import solrindexer as indexer
import bottle import solrindexer as indexer
2019.01.31
1刷 262
ソースコード
2刷
2019.02.12
1刷 263
「13.5 CRF++を用いた学習」直前にある長いソースコード
2刷
2019.02.12
1刷 263
本文7行目 (「13.5 CRF++を用いた学習」直前にある長いソースコードの直前の段落の1行目)
2刷
「英語」「版」「()」の行のラベルを
「英語」「版」「)」「(」の行のラベルを
2019.01.31

感想・レビュー

na さん

2021-11-19

検索エンジン作成までの大体の概念はわかった。 ソースコードもあって具体イメージ掴めて、サラッと読めて○。 ただ利用技術がちょっと古めだったりしたから、そこは別途勉強したい。