国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python工具箱系列(三十一)

這篇具有很好參考價值的文章主要介紹了Python工具箱系列(三十一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Neo4j是一個高性能的開源的,使用Java語言實現(xiàn)的NoSQL圖數(shù)據(jù)庫,它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡(luò)上而不是表中。它是一個嵌入式的、基于磁盤的、具備完全的事務(wù)特性的Java持久化引擎,但是它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡(luò)(從數(shù)學(xué)角度叫做圖)上而不是表中。Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數(shù)據(jù)庫的所有特性?,F(xiàn)實中很多數(shù)據(jù)都是用圖來表達的,比如社交網(wǎng)絡(luò)中人與人的關(guān)系、地圖數(shù)據(jù)、或是基因信息等等。RDBMS并不適合表達這類數(shù)據(jù),而且由于海量數(shù)據(jù)的存在,讓其顯得捉襟見肘。NoSQL數(shù)據(jù)庫的興起,很好地解決了海量數(shù)據(jù)的存放問題,圖數(shù)據(jù)庫也是NoSQL的一個分支,相比于NoSQL中的其他分支,它很適合用來原生表達圖結(jié)構(gòu)的數(shù)據(jù)。圖數(shù)據(jù)庫存儲的結(jié)構(gòu)就如同計算機科學(xué)中的數(shù)據(jù)結(jié)構(gòu)中所論述的圖,由頂點和邊組成。

Neo4j適用于圖形一類數(shù)據(jù),例如:社會關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓撲。Neo4j并為此專門進行了算法優(yōu)化,也開發(fā)了相關(guān)的查詢語言。這是Neo4j與其他NoSQL數(shù)據(jù)庫的最顯著區(qū)別。Neo4j不適用于:

◆記錄大量基于事件的數(shù)據(jù)(例如日志條目或傳感器數(shù)據(jù))

◆對大規(guī)模分布式數(shù)據(jù)進行處理,類似于Hadoop

◆二進制數(shù)據(jù)存儲

◆適合于保存在關(guān)系型數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù)

Neo4j提供了免費的社區(qū)版本,在數(shù)據(jù)量不大的情況下,可以用于開發(fā)。大規(guī)模部署與應(yīng)用建議購買企業(yè)版。在ubuntu bionic下的安裝過程如下所示:

wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable latest' | sudo tee /etc/apt/sources.list.d/neo4j.list
sudo apt-get update

# 安裝社區(qū)版本
sudo apt-get install -y neo4j

# 安裝企業(yè)版本
sudo apt-get install -y neo4j-enterprise

systemctl status neo4j
systemctl start neo4j
systemctl enable neo4j

# 直接在本地檢測是否安裝成功
curl http://localhost:7474/

同樣的,缺省情況下是只接受本地訪問要求,可以編輯/etc/neo4j/neo4j.conf文件增加"dbms.default_listen_address=0.0.0.0"這一行,隨后重新啟動服務(wù)即可遠程訪問:

sed -i '$adbms.default_listen_address=0.0.0.0' /etc/neo4j/neo4j.conf
systemctl restart neo4j

以上使用sed命令增加了綁定地址,隨后使用主流的瀏覽器(Edge,firefox,chrome)就可以訪問數(shù)據(jù)庫,如下圖所示:

Python工具箱系列(三十一)

第一次訪問時的缺省用戶名與口令均是Neo4j,登錄后需要修改。隨后就進入到工作界面如下:

Python工具箱系列(三十一)

也可以使用傳統(tǒng)的數(shù)據(jù)庫客戶端如DBeaver來訪問Neo4j數(shù)據(jù)庫。此時的連接屬性設(shè)置如下圖所示:

Python工具箱系列(三十一)

與SQL類似,Neo4j推出了專用于圖的聲明性文本查詢語言Cypher。Cypher包含語句、關(guān)鍵詞和表達式,比如謂詞、函數(shù)等,其中很多大家都很熟悉(如WHERE,ORDER BY,SKIP LIMIT,AND,p.unitPrice > 10)。與SQL不同,Cypher完全是表達圖模式的。添加了一個特殊子句MATCH來匹配數(shù)據(jù)中的這些模式。使用圓括號表示節(jié)點實體的圓,比如:(p:Product)。而關(guān)系的箭頭使用-->來表達。Cypher語言在其它方面的重點是圖概念,例如路徑、可變長度路徑、最短路徑函數(shù);列表上許多功能,操作和謂詞的支持以及鏈接查詢的功能。使用Cypher可以更新圖結(jié)構(gòu)和數(shù)據(jù),甚至導(dǎo)入大量的CSV數(shù)據(jù)。通過用戶定義的過程能夠擴展語言。通過openCypher項目,Cypher已經(jīng)成為一種現(xiàn)代圖查詢語言的開放標準,并且得到了多家數(shù)據(jù)庫公司的支持。其語法可以參考[語法卡](https://neo4j.com/docs/cypher-refcard/current/)。

可以通過多種方式來訪問Neo4j數(shù)據(jù)庫:

◆ 使用命令行工具如Cypher shell等

◆使用主流的瀏覽器訪問,Neo4j稱為Neo4j browser

◆其它第三方工具軟件

模仿movie graph,我們建立一個中文的圖數(shù)據(jù)庫。相關(guān)創(chuàng)建內(nèi)容如下:

CREATE (Jiangshuying:Person {name:'江疏影', born:1986})
CREATE (胡哥:Person {name:'胡哥', born:1982})
CREATE (Jindong:Person {name:'靳東', born:1976})
CREATE (萬莤:Person {name:'萬莤', born:1982})
CREATE (Gentlemen:Teleplay {title:"戀愛先生", released:2017})
CREATE (NothingButThirty:Teleplay {title:'三十而已', released:2020})
CREATE (外科風(fēng)云:Teleplay {title:'外科風(fēng)云', released:2017})
CREATE (偽裝者:Teleplay {title:'偽裝者', released:2015})
CREATE (好先生:Teleplay {title:'好先生', released:2016})
CREATE (縣委大院:Teleplay {title:'縣委大院', released:2022})
CREATE (Jiangshuying)-[:ACTED_IN {roles:['江萊']}]->(好先生)
CREATE (Jiangshuying)-[:ACTED_IN {roles:['羅鑰']}]->(Gentlemen)
CREATE (Jiangshuying)-[:ACTED_IN {roles:['王漫妮']}]->(NothingButThirty)
CREATE (Jindong)-[:ACTED_IN {roles:['莊恕']}]->(外科風(fēng)云)
CREATE (Jindong)-[:ACTED_IN {roles:['明樓']}]->(偽裝者)
CREATE (Jindong)-[:ACTED_IN {roles:['Boss']}]->(Gentlemen)
CREATE (胡哥)-[:ACTED_IN {roles:['明臺']}]->(偽裝者)
CREATE (胡哥)-[:ACTED_IN {roles:['梅曉哥']}]->(縣委大院)
CREATE (萬莤)-[:ACTED_IN {roles:['徐麗']}]->(好先生)

此時形成的知識圖譜如下所示:

Python工具箱系列(三十一)

由此可見Neo4j對中文的支持非常好,可以混合用中英文來建立自己的知識圖譜。下面的代碼顯示了,尋找萬莤與胡哥間相互認識的最短路徑。

match p=shortestpath((:Person {name:'江疏影'})-[*]-(:Person {name:'胡哥'})) return p

查詢結(jié)果如下圖所示:

Python工具箱系列(三十一)

當(dāng)然這只是一個示例,因為并沒有真正梳理每個人的關(guān)系,僅僅是從現(xiàn)有的知識中計算出來的。對于知識圖譜來說,信息越充分,威力越巨大。

需要注意的是,以上命令必須一次性輸入執(zhí)行完成,否則就會出現(xiàn)看起來是一樣的節(jié)點,但Neo4j會認為是不同的對象,從而形成意料之外的節(jié)點與關(guān)系。

Python操作知識圖譜

安裝了Py2neo就可以使用Python操作Neo4j了。我們也就可以在線處理大規(guī)模的數(shù)據(jù),實現(xiàn)知識圖譜的自動構(gòu)建了。安裝方法非常簡單,直接在cmd中輸入下列命令即可:

pip install py2neo

以下代碼創(chuàng)建了一個極簡的知識圖譜,如下圖所示:

Python工具箱系列(三十一)

示例代碼如下所示:

from py2neo import Node, Relationship, Graph, NodeMatcher, RelationshipMatcher

# 遠端NEO4J服務(wù)器
test_graph = Graph('http://172.20.103.169:7474',auth=('neo4j','88488848'))

A = Node("員工", name="張三", PID = 100)
B = Node("員工", name="李四", PID = 100)
C = Node("公司", name="西安衍輿",  CID = 99)
test_graph.create(A)
test_graph.create(B)
test_graph.create(C)
test_graph.create(Relationship(A, "工作于", C))
test_graph.create(Relationship(B, "工作于", C))

print(test_graph.nodes.match('員工').all())

從圖中可以看出,Neo4j對于中文的支持是非常好的。能夠以非常符合中文習(xí)慣的方式寫出相關(guān)知識。真正能夠?qū)嵱玫闹R圖譜必須是日積月累的過程,有了稱手的工具后,知識本身的正確性才是重點。文章來源地址http://www.zghlxwxcb.cn/news/detail-438784.html

到了這里,關(guān)于Python工具箱系列(三十一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python工具箱系列(三十三)

    Python工具箱系列(三十三)

    Timescaledb 在物聯(lián)網(wǎng)時代,出現(xiàn)了大量以時間為中心海量產(chǎn)生的傳感器數(shù)據(jù),稱為時序數(shù)據(jù)。這類數(shù)據(jù)的特點是: 數(shù)據(jù)記錄總有一個時間戳。 數(shù)據(jù)幾乎總是追加,不更新也不刪除。 大量使用近期的數(shù)據(jù)。很少更新或者回填時間間隔的缺失數(shù)據(jù)。 與時間間隔頻率關(guān)系不大。但累

    2024年02月06日
    瀏覽(20)
  • Python工具箱系列(三十六)

    基于Docker的數(shù)據(jù)庫開發(fā)環(huán)境 前文介紹了sqlite/mysql/mssql等數(shù)據(jù)庫系統(tǒng)在ubuntu的安裝與部署過程,相對是比較復(fù)雜的,需要耐心等待下載以及排除各種故障,對于開發(fā)人員來說是不太友好。在某些情況下,開發(fā)人員要測試在多個數(shù)據(jù)庫環(huán)境下軟件的正確性,需要部署多個數(shù)據(jù)庫,

    2024年02月09日
    瀏覽(25)
  • Python工具箱系列(三十四)

    Python工具箱系列(三十四)

    SQLAlchemy是著名的ORM(Object Relational Mapping-對象關(guān)系映射)框架。其主要作用是在編程中,把面向?qū)ο蟮母拍罡鷶?shù)據(jù)庫中表的概念對應(yīng)起來。對許多語言(例如JAVA/PYTHON)來說就是定義一個對象,并且這個對象對應(yīng)著一張數(shù)據(jù)庫的表。而這個對象的實例,就對應(yīng)著表中的一條記錄。

    2024年02月06日
    瀏覽(83)
  • Python工具箱系列(四十一)

    Python工具箱系列(四十一)

    ? ? ? ?前文的代碼示例了使用gzip對單個文件進行壓縮。本文示例使用更通用的zipfile來批量壓縮文件。zipfile也是python內(nèi)置的庫,使用起來非常方便。廢話不說,直接上代碼示例。 ? ? ? ?上述示例代碼中,再次引入一個python內(nèi)置的輕量級數(shù)據(jù)庫dbm。與shelve類似,也是key-val

    2024年02月11日
    瀏覽(32)
  • IDEA插件系列(4):GitToolBox插件——git工具箱

    IDEA插件系列(4):GitToolBox插件——git工具箱

    GitToolBox 提供各種git操作。 第一種安裝方式是使用IDEA下載安裝 第二種安裝方式是使用離線插件進行安裝 插件下載地址:http://plugins.jetbrains.com/plugin/7499-gittoolbox 在這里進行配置 更多可參考文檔 https://github.com/zielu/GitToolBox/wiki/Manual 作用:顯示當(dāng)前代碼提交的用戶名、時間、以

    2024年02月11日
    瀏覽(22)
  • HNU-離散數(shù)學(xué)-工具箱系列3-關(guān)系矩陣法求傳遞閉包

    HNU-離散數(shù)學(xué)-工具箱系列3-關(guān)系矩陣法求傳遞閉包

    用于解決這類問題: 舉例一、 ?舉例二、(求傳遞閉包) ? 代碼如下:

    2024年02月11日
    瀏覽(24)
  • python實現(xiàn)視頻抽幀,文件批量操作,文件批量處理(數(shù)據(jù)集制作的工具箱)

    環(huán)境準備 數(shù)據(jù)集制作 文件批量重命名 文件批量移動 將文件批量按照一定格式進行重命名 修改xml文件內(nèi)容的方法 Pathlib庫的常用接口 在計算機視覺項目中,文件批量操作和文件批量預(yù)處理是必不可少的步驟。它們涉及處理大量的圖像文件,包括讀取、處理、保存和預(yù)處理。

    2024年02月09日
    瀏覽(18)
  • 密碼算法工具箱

    密碼算法工具箱

    這是一個密碼算法工具箱軟件,包含大多數(shù)密碼鍵盤的算法,您可以利用他做加解密、校驗或者其他功能。 ①本工具包含對稱密鑰算法、MAC算法、PINBLOCK算法、Hash算法、非對稱密鑰算法的常用功能。 ②支持國際(RSA、DES、3DES)和國密(SM2、SM3、SM4)算法。 ③支持windows和l

    2024年01月19日
    瀏覽(25)
  • 29 旋轉(zhuǎn)工具箱

    29 旋轉(zhuǎn)工具箱

    實現(xiàn)了一個菜單按鈕的動畫效果,當(dāng)鼠標懸停在菜單按鈕上時,菜單按鈕會旋轉(zhuǎn)315度,菜單按鈕旋轉(zhuǎn)的同時,菜單按鈕旋轉(zhuǎn)的8個小圓圈也會依次旋轉(zhuǎn)360度,并且每個小圓圈的旋轉(zhuǎn)方向和菜單按鈕的旋轉(zhuǎn)方向相反,當(dāng)鼠標懸停在某個小圓圈上時,該小圓圈的旋轉(zhuǎn)方向會變?yōu)轫槙r

    2024年01月18日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包