2016-01-01から1年間の記事一覧

言語処理100本ノック

37. 頻度上位10語¶ 出現頻度が高い10語とその出現頻度をグラフ(例えば棒グラフなど)で表示せよ. import re from collections import Counter sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keit…

言語処理100本ノック

36. 単語の出現頻度 文章中に出現する単語とその出現頻度を求め,出現頻度の高い順に並べよ. import re from collections import Counter sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso …

言語処理100本ノック

35. 名詞の連接 名詞の連接(連続して出現する名詞)を最長一致で抽出せよ import re sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso = [] while line: if "EOS" in line: if len(keitaiso…

言語処理100本ノック

34. 「AのB」 2つの名詞が「の」で連結されている名詞句を抽出せよ. import re sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso = [] while line: if "EOS" in line: if len(keitaiso)>0: …

言語処理100本ノック

33. サ変名詞 サ変接続の名詞をすべて抽出せよ. import re sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso = [] while line: if "EOS" in line: if len(keitaiso)>0: sentences.append(ke…

言語処理100本ノック

32. 動詞の原形 動詞の原形をすべて抽出せよ. import re sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso = [] while line: if "EOS" in line: if len(keitaiso)>0: sentences.append(keit…

言語処理100本ノック

31. 動詞 動詞の表層形をすべて抽出せよ. import re sentences = [] with open("D:\\nlp100\\neko.txt.mecab",encoding="UTF-8") as fr: line = fr.readline() keitaiso = [] while line: if "EOS" in line: if len(keitaiso)>0: sentences.append(keitaiso…

言語処理100本ノック

30. 形態素解析結果の読み込み 形態素解析結果(neko.txt.mecab)を読み込むプログラムを実装せよ.ただし,各形態素は表層形(surface),基本形(base),品詞(pos),品詞細分類1(pos1)をキーとするマッピング型に格納し,1文を形態素(マッピング型)…

言語処理100本ノック

27. 内部リンクの除去¶ 26の処理に加えて,テンプレートの値からMediaWikiの内部リンクマークアップを除去し,テキストに変換せよ(参考: マークアップ早見表). import json import re def wiki_selection(): with open("D:\\nlp100\\jawiki-country.json"…

言語処理100本ノック

26. 強調マークアップの除去 25の処理時に,テンプレートの値からMediaWikiの強調マークアップ(弱い強調,強調,強い強調のすべて)を除去してテキストに変換せよ(参考: マークアップ早見表). import json import re def wiki_selection(): with open("D…

言語処理100本ノック

25. テンプレートの抽出 記事中に含まれる「基礎情報」テンプレートのフィールド名と値を抽出し,辞書オブジェクトとして格納せよ. import json import re def wiki_selection(): with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr: wi…

言語処理100本ノック

24. ファイル参照の抽出 記事から参照されているメディアファイルをすべて抜き出せ. import json import re def wiki_selection(): with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr: wiki_line = fr.readline() while wiki_line: wik…

言語処理100本ノック

23. セクション構造 記事中に含まれるセクション名とそのレベル(例えば"== セクション名 =="なら1)を表示せよ. import json import re def wiki_selection(): with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr: wiki_line = fr.read…

言語処理100本ノック

21. カテゴリ名を含む行を抽出 記事中でカテゴリ名を宣言している行を抽出せよ. import json import re def wiki_selection(): with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr: wiki_line = fr.readline() while wiki_line: wiki_di…

言語処理100本ノック

20. JSONデータの読み込み¶ Wikipedia記事のJSONファイルを読み込み,「イギリス」に関する記事本文を表示せよ.問題21-29では,ここで抽出した記事本文に対して実行せよ. import json with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr…

言語処理100本ノック

19. 各行の1コラム目の文字列の出現頻度を求め,出現頻度の高い順に並べる 各行の1列目の文字列の出現頻度を求め,その高い順に並べて表示せよ.確認にはcut, uniq, sortコマンドを用いよ. from collections import Counter with open("D:\\nlp100\\hightem…

言語処理100本ノック

18. 各行を3コラム目の数値の降順にソート 各行を3コラム目の数値の逆順で整列せよ(注意: 各行の内容は変更せずに並び替えよ).確認にはsortコマンドを用いよ(この問題はコマンドで実行した時の結果と合わなくてもよい). fr = open("D:\\nlp100\\highte…

言語処理100本ノック

17. 1列目の文字列の異なり 1列目の文字列の種類(異なる文字列の集合)を求めよ.確認にはsort, uniqコマンドを用いよ. fr = open("D:\\nlp100\\hightemp.txt",encoding="UTF-8") list = fr.readlines() fr.close() coll = set() for i in list: coll.add…

言語処理100本ノック

16. ファイルをN分割する 自然数Nをコマンドライン引数などの手段で受け取り,入力のファイルを行単位でN分割せよ.同様の処理をsplitコマンドで実現せよ import sys import math n = int(sys.argv[1]) fr = open("D:\\nlp100\\hightemp.txt",encoding="UTF-…

言語処理100本ノック

15. 末尾のN行を出力¶ 自然数Nをコマンドライン引数などの手段で受け取り,入力のうち末尾のN行だけを表示せよ.確認にはtailコマンドを用いよ. import sys n = int(sys.argv[1]) fr = open("D:\\nlp100\\hightemp.txt",encoding="UTF-8") list = fr.readli…

言語処理100本ノック

14. 先頭からN行を出力¶ 自然数Nをコマンドライン引数などの手段で受け取り,入力のうち先頭のN行だけを表示せよ.確認にはheadコマンドを用いよ. この問題を実行するためにVisual studio2013 にPython Tools for Visual Studioをインストールした。 import…

言語処理100本ノック

13. col1.txtとcol2.txtをマージ 12で作ったcol1.txtとcol2.txtを結合し,元のファイルの1列目と2列目をタブ区切りで並べたテキストファイルを 作成せよ.確認にはpasteコマンドを用いよ. import csv fr1 = open('col1.txt',encoding='UTF-8') fr2 = open('…

言語処理100本ノック

12. 1列目をcol1.txtに,2列目をcol2.txtに保存 各行の1列目だけを抜き出したものをcol1.txtに,2列目だけを抜き出したものをcol2.txtとしてファイルに保存せよ.確認にはcutコマンドを用いよ. import csv fw1 = open("col1.txt","w",encoding='UTF-8') fw2…

言語処理100本ノック

11. タブをスペースに置換 タブ1文字につきスペース1文字に置換せよ.確認にはsedコマンド,trコマンド,もしくはexpandコマンドを用いよ fr = open("hightemp.txt",encoding='UTF-8') fw = open("hightempw_replace.txt","w") for line in fr: line = line.…

言語処理100本ノック

第2章: UNIXコマンドの基礎 hightemp.txtは,日本の最高気温の記録を「都道府県」「地点」「℃」「日」のタブ区切り形式で 格納したファイルである.以下の処理を行うプログラムを作成し,hightemp.txtを入力ファイルとして実行せよ. さらに,同様の処理をUN…

Eclipse完全攻略を読む

読了 7、8、10章は省いた

言語処理100本ノック

09. Typoglycemia スペースで区切られた単語列に対して,各単語の先頭と末尾の文字は残し,それ以外の文字の順序をランダムに 並び替えるプログラムを作成せよ.ただし,長さが4以下の単語は並び替えないこととする. 適当な英語の文(例えば"I couldn't be…

Eclipse完全攻略を読む

1,2章読み終わり 機能たくさんありすぎ

パーフェクトjavaを読む

読み終わり

言語処理100本ノック

08. 暗号文 与えられた文字列の各文字を,以下の仕様で変換する関数cipherを実装せよ. 英小文字ならば(219 - 文字コード)の文字に置換 その他の文字はそのまま出力 この関数を用い,英語のメッセージを暗号化・復号化せよ. def cipher(sentence): result =…