py2neo

中国語学習×グラフデータベース(13) - 細々気づいたこと

一通りデータは登録してみたので、細々したことをいくつか。 重複ノードの削除 データを登録する際に、いろいろ間違えてしまい不要なノードを削除したいなという時があった。通常のリレーショナルDB(以下RDB)では、テーブル定義の時にキーの重複を許さないよ…

中国語学習×グラフデータベース(12) - 類義語間のリンク

前回、登録されていないキーワードを拾い集めたので、それをいったん単語として登録するところから再会。 新しい単語の自動新規登録 今回は、ある種機械的に拾い集めたものなので、単語の詳細は後回しにしつつ、自動登録だよという意味で、autoaddという属性…

中国語学習×グラフデータベース(11) - 類語を結びつける

ひとまず、単語(キーワード)の一部と短文をつなげるところまで来たので、今回は類義語どうしをつないでみる。 ネタ元はこれ CD付 どう違う?例文で覚える中国語類義語1000作者: 于鵬,平山邦彦,川田直樹出版社/メーカー: アスク出版発売日: 2010/04/28メディア…

中国語学習×グラフデータベース(10) - 単語と短文を紐付ける

今日のお題は、単語と短文のNodeを紐付けるのだが、いくつか考えるべきところがある。 Relationshipだらけに意味はあるか 中国語で一番使われている漢字はなんだろうか?ぶっちゃけ分からないけど、「我」「你」「是」「不」みたいな字は、登場頻度が高いよ…

中国語学習×グラフデータベース(9) - 属性変更

意外に続いている今シリーズ。ネタ切れも間近だったりするけど、とりあえずまとめておく。 属性の変更 例えば、単語1つを例に挙げる。 w = list(graph.find("Word", "keyword", "挨")) print(w) [<Node graph='http://localhost:7474/db/data/' ref='node/1110' labels={'Word'} properties={'keyword': '挨', 'pinyin': 'ai1', 'meaning': '', 'pinyinf': 'āi'}>]「挨」という単語を見てみると、意味(meaning…</node>

中国語学習×グラフデータベース(9) - 様々な検索

例えば、短文の中からキーワードを含むとか、特定の声調を含む単語みたいの検索するとなると、WHERE句でイコールしか使えないとかいう話では使い物にならない。さすがにCypherでもそのあたりは対応済みという事を整理しておきたい。 ○○で始まるシリーズ 例え…

中国語学習×グラフデータベース(8) - Relationshipの検索

検索という意味では前回とほとんど同じ。 Cypher独特の書式 独特と言っても、決して取っつきにくいわけではない。py2neoからはmatch()を使う方法もあるが、前回からの流れで、cypher.execute()で実行している。 wl = graph.cypher.execute("MATCH (w:Word)-[…

中国語学習×グラフデータベース(7) - ノードの検索

前回までで、ひとまず作ったデータがNeo4jの中に入ってきた。ここからいろいろデータをいじる訳だが、慣れる意味も含めていろいろのパターンで動かしてみることにする。 py2neoから直接cypherクエリを発行してみる 前回、py2neoの機能に頼りすぎて少し失敗し…

中国語学習×グラフデータベース(6) - ノードをまとめて作る

ついにNeo4jにデータを取り込む。 merge/merge_oneは使えるのか使えないのか まずは簡単そうな短文を取り込む。すでに、sentence_listというリストに短文は取り込んであるので、こんな感じでOK。 for sentence in sentence_list: graph.merge_one("Sentence"…

中国語学習×グラフデータベース(5) - py2neoからNeo4jに接続

前回さんざん引っ張って、CSV/TEXTからPythonに取り込むところで終わったけど、今度こそNeo4jに登場してもらわねばw。 Neo4jを起動する コマンドラインからも起動できるけど、個人的にはGUIから起動する方が好き。スクショはWindows版だけれども、Macでも同…

中国語学習×グラフデータベース(4) - データをPython側に取り込んでみる

何となくグラフデータベース側の構造を決めたので、さっそくデータを取り込んでみる。基本的な考え方は、データをアップロードして、Nodeを作ってから、Node間のRelationshipは、ある特定の条件に合致するものを後から紐付ける感じ。 CSVファイルからの取り…

中国語学習×グラフデータベース(3) - グラフデータベースでの構造を考えてみる

ノードとエッジだけ グラフ理論の中では、ノード(頂点)とエッジ(線)の組み合わせからなっているが、Neo4jの中では、NodeとRelationshipと呼ばれている。前回の記事で使ったものを再び引っ張り出すと、青や緑の円の部分がNode、線の部分がRelationshipという…

中国語学習×グラフデータベース(2) - 必要なこと(中国語以外の部分)

さて、いきなり始めたシリーズだが、この掛け算は、相当ニッチなところを攻めているのは分かっている。ただ、中国語学習というものを他のモノに置き換えて考えてもらえば、何かしらの役には立つかもしれない。 中国語以外に必要な知識 今回の取り組みにおい…

中国語学習×グラフデータベース(1) - なぜグラフなのか?

語学学習×グラフデータベース。いろいろ面白いことができるかも。— Ken M.X. (@Deutschina) February 23, 2016思い付きって怖い。でも入口としては面白そうなトピックなのでやってみることに。 まず前提 中国語関連で、こんなデータがありますという前提。 5…