タグ

parserに関するmanabouのブックマーク (58)

  • J.DepP - C++ implementation of Japanese Dependency Parsers

    About J.DepP is a C++ implementation of Japanese dependency parsing algorithms [1,2,3,4]. It takes a raw sentence as input and performs word segmentation, POS tagging (thanks to MeCab), bunsetsu chunking and dependency parsing. Syntactic parsers have been believed to be (significantly) slower than front-end part-of-speech taggers, and it is rarely utilized in industry that needs to handle massive

  • これで勝つる! PEGベースのコンパイラコンパイラpaccに触れる - id:anatooのブログ

    PEG-MLにPEGベースのコンパイラコンパイラ、pacc-0.0のリリースが告知された。 今までyaccやbisonなどを使わなければならなかったパーサも、paccを利用すれば強力なPEGベースのメタ言語を使って記述できる。この記事ではこの登場したばかりのコンパイラコンパイラ、paccに触れてみた。 インストール コンパイルに必要なboostライブラリを予めインストールしておく。Macならhomebrewからインストールできる。 $ brew install boostソースコードをダウンロードしてきて解凍してmake。 $ tar -xvf pacc-0.0.tar.bz2 $ cd pacc-0.0 $ make エラーが出ずにpaccを叩ければ成功。なんか0.0のバージョン名なのかronin(浪人?)と書いてある。 ./pacc -v pacc 0.0 (rōnin) Writte

    これで勝つる! PEGベースのコンパイラコンパイラpaccに触れる - id:anatooのブログ
  • C++パーサー - Faith and Brave - C++で遊ぼう

    C++ Parser? - Haskell Cafe 「Haskellで書かれたフルのC++パーサーない?」という話から始まって、Haskellで書かれたものに限らずいろいろなC++パーサーの実装が紹介されていたのでメモ。

    C++パーサー - Faith and Brave - C++で遊ぼう
  • sankuru.biz - sankuru リソースおよび情報

  • Packrat Parsing: Simple, Powerful, Lazy, Linear Time

    Packrat Parsing: Simple, Powerful, Lazy, Linear Time Presented at International Conference on Functional Programming, October 4-6, 2002, Pittsburgh Abstract Packrat parsing is a novel technique for implementing parsers in a lazy functional programming language. A packrat parser provides the power and flexibility of top-down parsing with backtracking and unlimited lookahead, but nevertheless guaran

  • Packrat Parserについて - Yet Another Ranha

    この記事は、私が全くPackrat Parserが分からなかったにも関わらず、 Packrat Parser generatorを書こうとするうちに、 何故かPackrat Parserの事が分かってしまった様な気がしたので書くエントリ。 参考ページは http://pdos.csail.mit.edu/~baford/packrat/icfp02/ 上記ページでは非常に簡潔にしかし十分にPackrat Parserについて書かれている。 しかも分かりやすく、私の様な馬鹿にさえ理解されてしまう。 そもそもPackrat Parserとは何なのか Packrat Parserはその名の通りparsingの技法である。 具体的にどういう事をしているのか、という事はFord先生のpaperでも触れられているが、 再帰下降パーザ(Recursive Descent Parsing)+Tabular

    Packrat Parserについて - Yet Another Ranha
  • http://ahalmeida.com/2011/09/06/how-neo4j-uses-scalas-parser-combinator-cyphers-internals-part-1/

  • Parse::RecDescentでJSONをパース - はこべにっき ♨

    JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ

    Parse::RecDescentでJSONをパース - はこべにっき ♨
  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • Parse::Yapp ヨチヨチ歩き - 日向夏特殊応援部隊

    Perlのyacc風パーサーである Parse::Yapp でちょっと遊んでみてます。 とにかく書き方に関する解説とか全然オンラインでヒットしないので、少し分かってきたので、個人的にまとめてみます。門外漢なので突っ込み歓迎。 お題 IPv4なアドレスをパースします。 ってもこれなら正規表現だけで瞬殺なんだけど、ヨチヨチ歩き版なので許して下さい。 ypファイル %{ use strict; use warnings; use Data::Dump qw(dump); %} %% ipv4 : dec_octet '.' dec_octet '.' dec_octet '.' dec_octet { my ($self, @patterns) = @_; return [ grep { $_ ne '.' } @patterns ]; } ; dec_octet : DIGIT | DIGIT

    Parse::Yapp ヨチヨチ歩き - 日向夏特殊応援部隊
  • JSONParserWithParseYapp - mizzy.org - Trac

    構文解析をちゃんと学ばないとなー、と前々から思いつつしばらく放置だったけど、なんとなくやる気になったのでやってみる。 ZIGOROu さんの Parse::Yapp ヨチヨチ歩き で Parse::Yapp の使い方を学びつつ、Rubyソースコード完全解説 第9章 速習yacc でパーサの書き方の基礎がなんとなくわかった気になり、でも実際は自分で書いてみなきゃわからん、ってことで、hakobe さんの Parse::RecDescentでJSONをパース を参考に、Parse::Yapp で JSON パーサを書いてみることにした。 といっても、いきなり全部書くと訳わかんないことになるので、まずは配列から。しかも数値のみ。(2011/02/16 追記。文字列も対応。) パーサ+スキャナは以下のような感じ。 %{ use strict; use warnings; %} %% JSON :

  • Lucene3.1でのQueryParserの挙動変更 - FrontRunner

    デフォルトでPhraseQueryを生成しなくなったQueryParserに注意(3.1)を読んで意味が分からなかったので、プログラムを実行してみた public class TestLucene2458 { static final Version V = Version.LUCENE_31; public static void main(String args[]) throws CorruptIndexException, IOException, ParseException { Directory directory = createIndex(); IndexSearcher searcher = new IndexSearcher(directory); QueryParser qp = new QueryParser(V, "F", new CJKAnalyzer(V))

    Lucene3.1でのQueryParserの挙動変更 - FrontRunner
    manabou
    manabou 2011/02/08
    query parser
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • Exploring Query Parsers

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • JavaScript で構文解析: Days on the Moon

    C++ の特徴のひとつである演算子オーバーロード、その粋を極めたのが Boost Lambda (無名関数) と Boost Spirit (構文解析) ではないかと思っています。JavaScript では無名関数が使えるので Lambda に関しては間に合っているとも言えますが、Spirit はそうも行きません。JavaScript 2 で演算子オーバーロードがサポートされるのならチャレンジしてみようかななどと思ってそれきりになっていました。 しかし、一部でパーサブームが起こっているというのを受け、Perl 6 Rules をつらつらと眺めているうち、正規表現のメタ文字を使えば文法定義をきれいに書けるのではと思い至りました。そこで実際に JavaScript でパーサジェネレータを作り、Spirit にあやかって Gin (ジン) と名づけてみました。 文法定義 正規表現リテラルを使うこ

  • IT戦記 - JavaScript で数式パーサを書いてみた。

    背景 いままで、ちゃんとパーサというものを書いたことがなかったので勉強のためにアレコレ考えながらやってみようと思って、簡単な数式を木にするパーサを書いてみようと思ったのです>< 今回作るパーサの仕様 パースする数式の演算子は二項演算子 + - * / と単項演算子 + - だけ。 括弧とかは使わない。 演算の優先順位は * / のほうが + - より高い。つまり、 1 + 1 * 1 は 1 + (1 * 1) 単項演算子は二項演算子より優先順位が高い。つまり、 - 1 + 1 は (-1) + 1 で、作ってみた! ソースコード filter 関数とか使ってるので、 Firefox only です。 var parse = function(source) { var tokens = source.match(/[-+*/]|[^-+*/\s]+|\s+/g).filter(/^[^\

    IT戦記 - JavaScript で数式パーサを書いてみた。
    manabou
    manabou 2007/08/30
    数式パーサー ソース解説付き
  • [Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合

    Kawa.netxp [Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合 XML::FeedPP モジュールは、 RSS 2.0、RSS 1.0 (RDF)、Atom 0.3(および1.0)フィードの XML ファイルを解析・生成・変換・結合するための Perl モジュールです。 RSS ベースの1種類の共通 APIRSS・RDF・Atom の各フォーマットの処理に対応しているため、 手軽に扱えます。 フィードの読み出し・書き込みはもちろん、 RSSからRDFへ、RDFからAtomへといった各フォーマット間の相互変換も可能です。 他サイトからダウンロードした複数のファイルを結合して、 まとめて1つのファイルとして出力することもできます。 公開版アーカイブ: XML-FeedPP-0.43.tar.gz TARGZ CPAN ←通常パッケ