この記事は、言語処理100本ノック 2015に挑戦した記録をまとめたものです。 各ページではより深く理解するため、別解や利用したライブラリの解説もまとめていきます。
週に1つペースで更新していきたいと思います。
3章で1年間止まってしまいました。やる気が出たのでまた続けます。
第1章: 準備運動
テキストや文字列を扱う題材に取り組みながら,プログラミング言語のやや高度なトピックを復習します.
文字列, ユニコード, リスト型, 辞書型, 集合型, イテレータ, スライス, 乱数
- 00. 文字列の逆順
- 01. 「パタトクカシーー」
- 02. 「パトカー」+「タクシー」=「パタトクカシーー」
- 03. 円周率
- 04. 元素記号
- 05. n-gram
- 06. 集合
- 07. テンプレートによる文生成
- 08. 暗号文
- 09. Typoglycemia
第2章: UNIXコマンドの基礎
研究やデータ分析において便利なUNIXツールを体験します.これらの再実装を通じて,プログラミング能力を高めつつ,既存のツールのエコシステムを体感します.
head, tail, cut, paste, split, sort, uniq, sed, tr, expand
- 10. 行数のカウント
- 11. タブをスペースに置換
- 12. 1列目をcol1.txtに,2列目をcol2.txtに保存
- 13. col1.txtとcol2.txtをマージ
- 14. 先頭からN行を出力
- 15. 末尾のN行を出力
- 16. ファイルをN分割する
- 17. 1列目の文字列の異なり
- 18. 各行を3コラム目の数値の降順にソート
- 19. 各行の1コラム目の文字列の出現頻度を求め,出現頻度の高い順に並べる
第3章: 正規表現
Wikipediaの記事を以下のフォーマットで書き出したファイルjawiki-country.json.gzがある.
- 1行に1記事の情報がJSON形式で格納される
- 各行には記事名が"title"キーに,記事本文が"text"キーの辞書オブジェクトに格納され,そのオブジェクトがJSON形式で書き出される
- ファイル全体はgzipで圧縮される
以下の処理を行うプログラムを作成せよ.
- 20. JSONデータの読み込み
- 21. カテゴリ名を含む行を抽出
- 22. カテゴリ名の抽出
- 23. セクション構造
- 24. ファイル参照の抽出
- 25. テンプレートの抽出
-
- 強調マークアップの除去
-
- 内部リンクの除去
-
- MediaWikiマークアップの除去
-
- 国旗画像のURLを取得する
Python:ファイルダウンロードの進行状況とファイルサイズを表示する方法。urllib
Pythonschedule2024-02-27
【Python】tqdmでforの進捗状況を表示する
PythonColabolatoryschedule2021-02-16
学習済みの日本語単語ベクトルをColabolatoryで試してみる
自然言語処理PythonColabolatoryschedule2021-02-04
Unity ML-Agentsで新しく学習環境を作る
Unity機械学習C#PythonDeepLearningschedule2021-01-22
27. 内部リンクの除去
自然言語処理100本ノックPythonschedule2020-03-17