import re def remove_markup(str): str1 = re.sub(r"'{2,5}", r"", str) str2 = re.sub(r"[[(.*?)]]", r"\1", str1) return str2 if __name__ == '__main__': docs = {} for line in fileinput.input('-'): obj = json.loads(line) docs[obj['title']] = obj['text'] for lines in docs[obj['title']].split('\t'): remove_markup(lines) line_number = 0 #行数 allkanji = 0 line_number += 1 rkan = re.compile("[一-龥]") foundkanji = rkan.findall(lines) oneline_kanji = len(foundkanji) / len(lines) #1行ごとの漢字の割合 allkanji += oneline_kanji per = round((allkanji / line_number) * 100, 1) print(obj['title'], '\t', per, '%')
txt
1{"text": "{{otheruses|主に現代のエジプト・アラブ共和国|古代|古代エジプト}}\n{{基礎情報 国\n|略名 =エジプト\n|日本語国名 =エジプト・アラブ共和国\n|公式国名 ='''{{lang|ar|جمهورية مصر العربية}}'''\n|国旗画像 =Flag of Egypt.svg\n|国章画像 =[[ファイル:Coat_of_arms_of_Egypt.svg|100px|エジプトの国章]]\n|国章リンク =([[エジプトの国章|国章]])\n|標語 =なし\n|位置画像 =Egypt (orthographic projection).svg\n|公用語 =[[アラビア語]]\n|首都 =[[カイロ]]\n|最大都市 =カイロ\n|元首等肩書 =[[近代エジプトの国家元首の一覧|大統領]]\n|元首等氏名 =[[アブドルファッターフ・アッ=シーシー]]\n|首相等肩書 =[[エジプトの首相|首相]]\n|首相等氏名 =[[イブラヒーム・メフレブ]]\n|面積順位 =29\n|面積大きさ =1 E12\n|面積値 =1,001,450\n|水面積率 =0.6%\n|人口統計年 =2011\n|人口順位 =\n|人口大きさ =1 E7\n|人口値 =81,120,000\n|人口密度値 =76\n|GDP統計年元 =2008\n|GDP値元 =8,965億<ref name=\"economy\">IMF Data and Statistics 2009年4月27日閲覧([http://www.imf.org/external/pubs/ft/weo/2009/01/weodata/weorept.aspx?pr.x=77&pr.y=19&sy=2008&ey=2008&scsm=1&ssd=1&sort=country&ds=.&br=1&c=469&s=NGDP%2CNGDPD%2CPPPGDP%2CPPPPC&grp=0&a=])</ref>\n|GDP統計年MER =2008\n|GDP順位MER =49\n|GDP値MER =1,621億<ref name=\"economy\" />\n|GDP統計年 =2008\n|GDP順位 =28\n|GDP値 =4,426億<ref name=\"economy\" />\n|GDP/人 =5,898<ref name=\"economy\" />\n|建国形態 =[[独立]]<br /> - 日付\n|建国年月日 =[[イギリス]]より<br />[[1922年]][[2月28日]]\n|通貨 =[[エジプト・ポンド]] (£)\n|通貨コード =EGP\n|時間帯 =(+2)\n|夏時間 =(+3)\n|国歌名 =我が祖国\n|ISO 3166-1 = EG / EGY\n|ccTLD =[[.eg]]\n|国際電話番号 =20\n|注記 =\n}}\n'''エジプト・アラブ共和国'''(エジプト・アラブきょうわこく)、通称'''エジプト'''は、[[中東]]・[[アフリカ]]の[[共和国]]。[[首都]]は[[カイロ]]。\n\n西に[[リビア]]、南に[[スーダン]]、北東に[[イスラエル]]と隣接し、北は[[地中海]]、東は[[紅海]]に面している。南北に流れる[[ナイル川]]の[[河谷]]と[[三角州|デルタ]]地帯([[ナイル・デルタ]])のほかは、国土の大部分が[[砂漠]]である。ナイル河口の東に地中海と紅海を結ぶ[[スエズ運河]]がある。
このようなテキストファイルの記事本文の漢字の割合を出すためにリンクなどの余計な文字やマークアップを除去コードを関数で実装したいです
言語処理100本ノックの27,28あたりを参考にしましたができなかったのでどうかよろしくお願いします
提示されているコードで、置換されるべきものは置換されますよね。具体的にどういう文字列をどういう風に置換したいのかの説明をお願いします。それがないと、どの方向に修正すべきかも判断しようがありません。
回答1件
あなたの回答
tips
プレビュー