py2neo
一通りデータは登録してみたので、細々したことをいくつか。 重複ノードの削除 データを登録する際に、いろいろ間違えてしまい不要なノードを削除したいなという時があった。通常のリレーショナルDB(以下RDB)では、テーブル定義の時にキーの重複を許さないよ…
前回、登録されていないキーワードを拾い集めたので、それをいったん単語として登録するところから再会。 新しい単語の自動新規登録 今回は、ある種機械的に拾い集めたものなので、単語の詳細は後回しにしつつ、自動登録だよという意味で、autoaddという属性…
ひとまず、単語(キーワード)の一部と短文をつなげるところまで来たので、今回は類義語どうしをつないでみる。 ネタ元はこれ CD付 どう違う?例文で覚える中国語類義語1000作者: 于鵬,平山邦彦,川田直樹出版社/メーカー: アスク出版発売日: 2010/04/28メディア…
今日のお題は、単語と短文のNodeを紐付けるのだが、いくつか考えるべきところがある。 Relationshipだらけに意味はあるか 中国語で一番使われている漢字はなんだろうか?ぶっちゃけ分からないけど、「我」「你」「是」「不」みたいな字は、登場頻度が高いよ…
意外に続いている今シリーズ。ネタ切れも間近だったりするけど、とりあえずまとめておく。 属性の変更 例えば、単語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>
例えば、短文の中からキーワードを含むとか、特定の声調を含む単語みたいの検索するとなると、WHERE句でイコールしか使えないとかいう話では使い物にならない。さすがにCypherでもそのあたりは対応済みという事を整理しておきたい。 ○○で始まるシリーズ 例え…
検索という意味では前回とほとんど同じ。 Cypher独特の書式 独特と言っても、決して取っつきにくいわけではない。py2neoからはmatch()を使う方法もあるが、前回からの流れで、cypher.execute()で実行している。 wl = graph.cypher.execute("MATCH (w:Word)-[…
前回までで、ひとまず作ったデータがNeo4jの中に入ってきた。ここからいろいろデータをいじる訳だが、慣れる意味も含めていろいろのパターンで動かしてみることにする。 py2neoから直接cypherクエリを発行してみる 前回、py2neoの機能に頼りすぎて少し失敗し…
ついにNeo4jにデータを取り込む。 merge/merge_oneは使えるのか使えないのか まずは簡単そうな短文を取り込む。すでに、sentence_listというリストに短文は取り込んであるので、こんな感じでOK。 for sentence in sentence_list: graph.merge_one("Sentence"…
前回さんざん引っ張って、CSV/TEXTからPythonに取り込むところで終わったけど、今度こそNeo4jに登場してもらわねばw。 Neo4jを起動する コマンドラインからも起動できるけど、個人的にはGUIから起動する方が好き。スクショはWindows版だけれども、Macでも同…
何となくグラフデータベース側の構造を決めたので、さっそくデータを取り込んでみる。基本的な考え方は、データをアップロードして、Nodeを作ってから、Node間のRelationshipは、ある特定の条件に合致するものを後から紐付ける感じ。 CSVファイルからの取り…
ノードとエッジだけ グラフ理論の中では、ノード(頂点)とエッジ(線)の組み合わせからなっているが、Neo4jの中では、NodeとRelationshipと呼ばれている。前回の記事で使ったものを再び引っ張り出すと、青や緑の円の部分がNode、線の部分がRelationshipという…
さて、いきなり始めたシリーズだが、この掛け算は、相当ニッチなところを攻めているのは分かっている。ただ、中国語学習というものを他のモノに置き換えて考えてもらえば、何かしらの役には立つかもしれない。 中国語以外に必要な知識 今回の取り組みにおい…
語学学習×グラフデータベース。いろいろ面白いことができるかも。— Ken M.X. (@Deutschina) February 23, 2016思い付きって怖い。でも入口としては面白そうなトピックなのでやってみることに。 まず前提 中国語関連で、こんなデータがありますという前提。 5…