This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release.
7.2. re — 正規表現操作¶ このモジュールでは、 Perl で見られるものと同様な正規表現マッチング操作を提供しています。パターンと検索対象文字列の両方について、 8 ビット文字列と Unicode 文字列を同じように扱えます。 正規表現では、特殊な形式を表したり、特殊文字の持つ特別な意味を呼び出さずにその特殊な文字を使えるようにするために、バックスラッシュ文字 ('\') を使います。こうしたバックスラッシュの使い方は、 Python の文字列リテラルにおける同じバックスラッシュ文字と衝突を起こします。例えば、バックスラッシュ自体にマッチさせるには、パターン文字列として '\\\\' と書かなければなりません、というのも、正規表現は \\ でなければならず、さらに正規な Python 文字列リテラルでは各々のバックスラッシュを \\ と表現せねばならないからです。 正規表現パター
(この記事は 2008年03月14日に別のブログに投稿した記事を移動・編集したものです。) インターネット上の日本語を扱っていると、全角半角が統一されていない事による表記揺れをなんとかしたい場面に出くわします。半角で書かれた iPod も、全角で書かれたiPodも同じものとして扱いたいときや、あるいは単に見た目がきれいになるように、英数字は半角に、カタカナは全角にそろえたい、という場合です。 Python では setomitsさんによる zenhan.py を使うと、文字種ごとに全角半角を選択して変換することができ、除外文字も設定できるので便利です。ただ、そこまで柔軟でなくても良く、単に表記揺れがなくなれば良い、という場合も多いかと思います。その場合はPythonの標準ライブラリに含まれる unicodedata モジュールの normalize 関数を使うと便利です。 >>> impo
ファイルの拡張子を取得するには、os.path.splitext(path) を使用します。 import os.path root, ext = os.path.splitext(path) 例 import os.path root, ext = os.path.splitext('C:\\foo\\bar\\test.txt') # root => C:\\foo\\bar\\test # ext => .txt URLでも使えるようです。 import os.path root, ext = os.path.splitext('http://www.example.com/foo/bat/test.txt') # root => http://www.example.com/foo/bat/test # ext => .txt 関連 Python ライブラリリファレンス 6.2 o
普段良く使うモジュールのMeCabのインストール。 Homebrewもvirutalenvも最近使い始めたばかりなので、自分用メモとして記録。 virtualenv環境の作成 普段はNormalという環境を作って、これを使うことにする。 $ mkvirtualenv Normal $ brew search mecab mecab mecab-ipadic Homebrewにあった。 $ brew install mecab mecab-ipadic $ mecab これでこの時点の最新版である0.994とIPA辞書がインストールできた。動作確認。 $ mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ
Python で CLI のコマンドを実行したいときは subprocess モジュールを使う。 subprocess モジュールを使う以外にもやり方はあるみたいだけど、それらは obsolete らしい。 本題だけど subprocess モジュールを使ってコマンドを実行したときに、返り値を見ながら標準出力、標準エラー出力の内容も得る方法が意外と見つからなかった。 subprocess.check_call() 関数を使えば返り値が見られるけど標準出力、標準エラー出力が得られなさげ。 subprocess.Popen クラスを使うと標準出力、標準エラー出力は得られるけど返り値はどう得られるんだろう? ドキュメントを読んだりソースコードを見ていった結論が以下。 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__m
入門 自然言語処理 作者: Steven Bird,Ewan Klein,Edward Loper,萩原正人,中山敬広,水野貴明出版社/メーカー: オライリージャパン発売日: 2010/11/11メディア: 大型本購入: 20人 クリック: 639回この商品を含むブログ (44件) を見る TF・IDF計算 自然言語処理の勉強としてTF・IDFによる重要単語の抽出をwikipediaのデータに対して試してみます。TF・IDFを一言でまとめると、とある単語の重要度を出現頻度から計算する手法です。計算結果は重みを表します。TFは単語の出現数(Term Frequency)、IDFは総文書数 / 単語が出現する文書の総数の対数(Inverted Document Frequency)、TFIDFはその積になります。数式にすると以下のようになりますが、Webを検索してみると人によって計算の仕方が異
ExtractContent は、HTMLから本文を抽出するRubyモジュールです。 RubyForge: ExtractContent: Project Info Webページの本文抽出 (nakatani @ cybozu labs) Perl用の同名モジュールもありますが、今回はRubyモジュールを基にしてPythonへ移植してみました。 # -*- coding:utf-8 -*- import re import unicodedata class ExtractContent(object): # convert character to entity references CHARREF = { "nbsp" :" ", "lt" :"<", "gt" :">", "amp" :"&", "laquo":u"\xc2\xab", "raquo":u"\xc2\xbb", }
Beautiful SoupはHTMLやXMLをparseしてくれるパーサーライブラリです。でも、Beautiful Soupは単なるパーサーじゃなくてちょっと賢い奴なんです。 今回、このBeautiful Soupのドキュメントを翻訳しました。 http://www.tdoc.info/beautifulsoup/ 下に軽く紹介していますが、詳しくはこのドキュメントをご覧ください。 Beautiful Soupをざっくり紹介 Beautiful Soupがどういうやつかって?例えばこんなHTMLがあったとしましょう。 <HTML> <body> 改行<br> したいよね <br/> <! --あれ、空白が入ってるちょっと変なコメント--> <p> bodyが閉じてないよ? </html> 結構変なHTMLですよね。でも、巷にはこういうのも結構あるんです。で、これをtest1.htmlだと
3.25 pprint -- データ出力の整然化 pprintモジュールを使うと、Pythonの任意のデータ構造をインタープ リタへの入力で使われる形式にして``pretty-print''できます。 フォーマット化された構造の中にPythonの基本的なタイプではないオブジェクト があるなら、表示できないかもしれません。 Pythonの定数として表現できない多くの組み込みオブジェクトと同様、ファイ ル、ソケット、クラスあるいはインスタンスのようなオブジェクトが含まれてい た場合は出力できません。 可能であればオブジェクトをフォーマット化して1行に出力しますが、与えられ た幅に合わないなら複数行に分けて出力します。 無理に幅を設定したいなら、PrettyPrinterオブジェクトを作成して明 示してください。 pprintモジュールには1つのクラスが定義されています: PrettyPrint
# 文字列の結合 print( "str" + "str" ) #=> strstr # 数値と結合する際は、自動型変換はされないので、strで囲む i = 10 print( "str" + str( i ) ) #=> str10 print( "str" + i ) #=> TypeError: Can't convert 'int' object to str implicitly # 「*」を使うと繰り返し print( "str" * 3 ) #=> strstrstr #=> 0や負の数を指定すると空文字が返る # formatを使用して、好きな形式に変換 print( "今日は{0}です".format( "晴れ" ) ) #=> 今日は晴れです print( "1 + 10 = {0}, 2 + 5 = {1}".format( 1 + 10, 2 + 5 ) ) #=>
自己紹介 名前: 山田直行(Naoyuki YAMADA) 屋号: 霧敷スタジオ(Kirishiki Studios) ハンドルネーム: hanputu Github Twitter Blog Blog(old) Note Facebook LinkedIn SlideShare SpeakerDeck YOUTRUST 勤務先/取引先(2024年1月時点) 株式会社ナイルワークス(正社員) ドローン事業部 シニアエンジニア 株式会社サイバーエージェント(業務委託) AILab 経済学社会実装チーム 他 業務委託 1社 興味・スキル バックエンド寄りのウェブアプリケーションエンジニア。 小さなエンジニアリングチームでの立ち上げから長期の運用まで、ウェブサービスの開発過程全般に興味・スキルがあります。 AWSを中心にクラウド環境の構築・運用の経験が多く、運用の自動化(GitHub Actio
そろそろオワコン感が出てきそうなMySQLですが、 まだ普通に使うのでPythonからの使い方をメモっておきます。 ライブラリのインストール MySQL-pythonを使います。 ちなみにこのライブラリはMariaDBにも対応しているらしいです。 import MySQLdb # DBへログイン # localhostの場合は省略可 connection = MySQLdb.connect(db="test",user="test") cursor = connection.cursor() # SQL cursor.execute("select * from users") result = cursor.fetchall() for row in result: p row[0] cursor.close() connection.close()
昨日の例でも使用した Universal Feed Parser は非常に便利。何かしらフィードを処理する場合は,とりあえずこいつに突っ込んでおけばなんとかなる。 例えば,ここの RSS フィードを取得するには下のようにする。 import feedparser feed = feedparser.parse('http://d.hatena.ne.jp/KZR/rss') エントリーのタイトルを列挙するには,こんな感じ。 for entry in feed.entries: print entry.title アクセスの方法は RSS でも Atom でも同じでいい。 feedparser が正規化して扱ってくれる。 ただし, Google App Engine で使用する場合は URL 直接指定は使えない模様(sandbox の制限のため?)。 urlfetch を使って取得してから
Out of date! This page is no longer updated. Development and maintenance of this project has continued and you can find the most recent information here: https://pypi.org/project/pypdf/. About A Pure-Python library built as a PDF toolkit. It is capable of: extracting document information (title, author, ...), splitting documents page by page, merging documents page by page, cropping pages, merging
LDA とは "Latent Dirichlet Allocation"。文書中の単語の「トピック」を確率的に求める言語モデル。 「潜在的ディリクレ配分法」と訳されていることもあるが、その名前だと「それってなんだっけ?」という人のほうが多そうw。 各単語が「隠れトピック」(話題、カテゴリー)から生成されている、と想定して、そのトピックを文書集合から教師無しで推定することができる。特徴は、果物の apple と音楽の apple とコンピュータ関連の apple を区別することが出来る(ことが期待される)という点。そのために、どのトピックを生成しやすいかという分布を各文章も持つ。細かい話は略。 結果の見方としては、定量的にはパープレキシティを見るし(一般に小さいほどいい)、定性的には各トピックがどのような単語を生成するか、その確率上位のものを見てふむふむする。この「各トピックが生成する単語」
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く