マイナビニュースマイナビ

サードパーティ製ライブラリを使おう(前編)

【連載】

対話システムをつくろう! Python超入門

【第21回】サードパーティ製ライブラリを使おう(前編)

[2020/04/13 08:00]阿部憲幸 ブックマーク ブックマーク

前回はドキュメントの探し方に焦点を当て、「カレンダーを表示する対話システム」を題材に検索サイトで関連キーワードを調べ、その内容を公式ドキュメントのライブラリリファレンスで調べる方法を紹介しました。

実は、検索サイトで調べたキーワードに対応するものがライブラリリファレンスには載っていない、つまりPythonの標準ライブラリに含まれていない場合も多く、その場合は別途インストールする必要があります。

そこで今回、そして次回は「半角文字を全角文字に変換する」というタスクを題材に、サードパーティ製のライブラリを調べ、インストールして利用する方法について紹介したいと思います。

前処理

「半角文字を全角文字に変換する」のように、あらかじめ入力されたテキストを一定の形式に変換する処理を「前処理」と呼びます。前処理はいろいろな場面で威力を発揮するものです。

例えば、本連載の第12回で紹介した正規表現を使って、文字列を「ネコ」というパターンにマッチさせる場合を考えてみましょう。前処理で半角文字を全角文字に変換していない場合は、全角文字の「ネコ」と半角文字の「ネコ」の両方にマッチするようにパターンを書かなければなりません。しかし、事前に半角文字を全角文字に変換する前処理を行っておくことで、全角文字の「ネコ」にのみマッチするパターンを書いておけばよくなります。このように後の処理を簡略できるのは、前処理のメリットの1つです。

また、近年注目が集まっているディープラーニングをはじめとする機械学習でも、前処理を行うかどうかで精度が大きく変わることが多々あります。前処理は、そうした重要な役割も担っているのです。

今回の題材は、前処理を実装してみることも目的の1つなので、意識しておいてください。

さて、それでは目標をより具体的にイメージしてみましょう。最終的にやりたいのは、次のように任意の文字列中の半角文字を全角文字に変換する前処理用関数「convert_han_to_zen」を作成することです。

>>> text = "ネコが飼いたい"
>>> convert_han_to_zen(text)
ネコが飼いたい

この関数を一から実装してもよいのですが、可能であればライブラリを利用したいところです。そこで前回の「ドキュメントの探し方」に従って、まずは検索サイトで関連キーワードを探してみましょう。

ドキュメントを探す

検索キーワードはいろいろあると思いますが、今回は「python 全角 半角 変換」で調べてみます。

「python 全角 半角 変換」を検索

すると「jaconv」という名前が目に入ります。どうやらjaconvというのは「パッケージ」で、これを使えば半角/全角変換を行えそうだ、ということがわかりました。

おっと、パッケージという単語が出てきました! パッケージというのは複数のモジュールを階層構造で管理するための仕組みです。聞くと難しそうですが、利用する分にはモジュールとあまり変わらないので、心配はいりません。ここでは、複数のモジュールを管理するパッケージという機能があるということだけ覚えておいてください。

話を元に戻しましょう。 キーワードがわかったので、Pythonの公式ドキュメント「ライブラリリファレンス」でjaconvを調べてみましょう。

ライブラリリファレンスで「jaconv」を検索

しかし、ご覧の通りライブラリリファレンスには掲載されていないようです。これは一体、どういうことでしょうか?

実は、Pythonでは公式で提供されている標準ライブラリのほかにサードパーティ製のライブラリも存在します。そうしたサードパーティ製のライブラリを公開しているサイト「Python Package Index (PyPI)」では、ライブラリリファレンス同様、ライブラリの検索やインストールが可能です

今回はいったんここまでとし、次回はPyPIを使ったサードパーティ製ライブラリの検索/インストール、利用方法について解説します。

※ PyPIで提供されているライブラリはPythonが公式に提供しているわけではありません。その質やライセンスなどについては各ライブラリに依存するので、注意して利用してください。

著者紹介


株式会社NTTドコモ
R&Dイノベーション本部 サービスイノベーション部
阿部憲幸

2015年京都大学大学院理学研究科数学・数理解析専攻修了。 同年、NECに入社。 2016年から国立研究開発法人情報通信研究機構出向。 2018年より現職。 自然言語処理、特に対話システムの研究開発に従事。 毎日話したくなるAIを夢見て日夜コーディングに励む。
GitHub:https://github.com/noriyukipy

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

マネージャーではなく、技術のスペシャリストとして生きる道 - Gunosyが設置した新たなエンジニアのキャリアパスとは

マネージャーではなく、技術のスペシャリストとして生きる道 - Gunosyが設置した新たなエンジニアのキャリアパスとは

独自のアルゴリズムでユーザーの好みにあったニュースを届ける情報キュレーションサービスを提供してきたGunosy。同社は、2019年よりエンジニア組織を支える役員陣の体制を整備。また各チームに、リードエンジニアという技術のスペシャリストとしてのポジションを新たに設けた。今回は、CTOの小出幸典氏、Network Adsチームのリードエンジニア 鈴木雄登氏に、新…

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で TECH+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Google Workspaceをビジネスで活用する
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る