最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

教學(xué)構(gòu)建農(nóng)業(yè)知識(shí)圖譜:農(nóng)業(yè)領(lǐng)域的信息檢索+智能問(wèn)答

2023-07-07 14:33 作者:汀丶人工智能  | 我要投稿

手把手教學(xué)構(gòu)建農(nóng)業(yè)知識(shí)圖譜:農(nóng)業(yè)領(lǐng)域的信息檢索+智能問(wèn)答,命名實(shí)體識(shí)別,關(guān)系抽取,實(shí)體關(guān)系查詢(xún)

1.項(xiàng)目介紹:

效果展示:

2.項(xiàng)目配置

0.安裝基本環(huán)境:

確保安裝好python3和Neo4j(任意版本)

安裝一系列pip依賴(lài): cd至項(xiàng)目根目錄,運(yùn)行 sudo pip3 install -r requirement.txt

1.導(dǎo)入數(shù)據(jù):

將hudongpedia.csv導(dǎo)入neo4j:開(kāi)啟neo4j,進(jìn)入neo4j控制臺(tái)。將hudongpedia.csv放入neo4j安裝目錄下的/import目錄。在控制臺(tái)依次輸入:


以上兩步的意思是,將hudong_pedia.csv導(dǎo)入neo4j作為結(jié)點(diǎn),然后對(duì)titile屬性添加UNIQUE(唯一約束/索引)

(如果導(dǎo)入的時(shí)候出現(xiàn)neo4j jvm內(nèi)存溢出,可以在導(dǎo)入前,先把neo4j下的conf/neo4j.conf中的dbms.memory.heap.initialsize 和dbms.memory.heap.maxsize調(diào)大點(diǎn)。導(dǎo)入完成后再把值改回去)

進(jìn)入/wikidataSpider/wikidataProcessing中,將newnode.csv,wikidatarelation.csv,wikidata_relation2.csv三個(gè)文件放入neo4j的import文件夾中(運(yùn)行relationDataProcessing.py可以得到這3個(gè)文件),然后分別運(yùn)行


導(dǎo)入實(shí)體屬性(數(shù)據(jù)來(lái)源: 互動(dòng)百科)

將attributes.csv放到neo4j的import目錄下,然后執(zhí)行


導(dǎo)入氣候名稱(chēng):

將wikidataSpider/weatherData/staticweatherlist.csv放在指定的位置(import文件夾下)

//導(dǎo)入節(jié)點(diǎn) LOAD CSV WITH HEADERS FROM "file:///static_weather_list.csv" AS line MERGE (:Weather { title: line.title }) //添加索引 CREATE CONSTRAINT ON (c:Weather) ASSERT c.title IS UNIQUE

導(dǎo)入氣候與植物的關(guān)系


以上步驟是導(dǎo)入爬取到的關(guān)系

2.下載詞向量模型:(如果只是為了運(yùn)行項(xiàng)目,步驟2可以不做,預(yù)測(cè)結(jié)果已經(jīng)離線(xiàn)處理好了)

3.修改Neo4j用戶(hù)

進(jìn)入demo/Model/neo_models.py,修改第9行的neo4j賬號(hào)密碼,改成你自己的

4.啟動(dòng)服務(wù)

進(jìn)入demo目錄,然后運(yùn)行腳本:

sudo sh django_server_start.sh

這樣就成功的啟動(dòng)了django。我們進(jìn)入8000端口主頁(yè)面,輸入文本,即可看到以下命名實(shí)體和分詞的結(jié)果(確保django和neo4j都處于開(kāi)啟狀態(tài))

2.1農(nóng)業(yè)知識(shí)問(wèn)答

2.2關(guān)系查詢(xún)

  • 修改部分配置信息

  • 關(guān)系查詢(xún)中,添加了2個(gè)實(shí)體間的最短路查詢(xún),從而挖掘出實(shí)體之間一些奇怪的隱含關(guān)系

2.3農(nóng)業(yè)實(shí)體識(shí)別+實(shí)體分類(lèi)

點(diǎn)擊實(shí)體的超鏈接,可以跳轉(zhuǎn)到詞條頁(yè)面(詞云采用了詞向量技術(shù)):

2.3.1實(shí)體查詢(xún)

實(shí)體查詢(xún)部分,我們能夠搜索出與某一實(shí)體相關(guān)的實(shí)體,以及它們之間的關(guān)系:

2.3.2關(guān)系查詢(xún)

關(guān)系查詢(xún)即查詢(xún)?nèi)M關(guān)系entity1-[relation]->entity2 , 分為如下幾種情況:

  • 指定第一個(gè)實(shí)體entity1

  • 指定第二個(gè)實(shí)體entity2

  • 指定第一個(gè)實(shí)體entity1和關(guān)系relation

  • 指定關(guān)系relation和第二個(gè)實(shí)體entity2

  • 指定第一個(gè)實(shí)體entity1和第二個(gè)實(shí)體entity2

  • 指定第一個(gè)實(shí)體entity1和第二個(gè)實(shí)體entity2以及關(guān)系relation

下圖所示,是指定關(guān)系relation和第二個(gè)實(shí)體entity2的查詢(xún)結(jié)果

2.4知識(shí)的樹(shù)形結(jié)構(gòu)

農(nóng)業(yè)知識(shí)概覽部分,我們能夠列出某一農(nóng)業(yè)分類(lèi)下的詞條列表,這些概念以樹(shù)形結(jié)構(gòu)組織在一起:

農(nóng)業(yè)分類(lèi)的樹(shù)形圖:

2.5訓(xùn)練集標(biāo)注

我們還制作了訓(xùn)練集的手動(dòng)標(biāo)注頁(yè)面,每次會(huì)隨機(jī)的跳出一個(gè)未標(biāo)注過(guò)的詞條。鏈接:http://localhost:8000/tagging-get , 手動(dòng)標(biāo)注的結(jié)果會(huì)追加到/label_data/labels.txt文件末尾:

我們將這部分做成了小工具,可復(fù)用:https://github.com/qq547276542/LabelMarker

(update 2018.04.07) 同樣的,我們制作了標(biāo)注關(guān)系提取訓(xùn)練集的工具,如下圖所示

如果Statement的標(biāo)簽是對(duì)的,點(diǎn)擊True按鈕;否則選擇一個(gè)關(guān)系,或者輸入其它關(guān)系。若當(dāng)前句子無(wú)法判斷,則點(diǎn)擊Change One按鈕換一條數(shù)據(jù)。

說(shuō)明: Statement是/wikidataSpider/TrainDataBaseOnWiki/finalData中train_data.txt中的數(shù)據(jù),我們將它轉(zhuǎn)化成json,導(dǎo)入到mongoDB中。標(biāo)注好的數(shù)據(jù)同樣存在MongoDB中另一個(gè)Collection中。關(guān)于Mongo的使用方法可以參考官方tutorial,或者利用這篇文章簡(jiǎn)單了解一下MongoDB

我們?cè)贛ongoDB中使用兩個(gè)Collections,一個(gè)是traindata,即未經(jīng)人工標(biāo)注的數(shù)據(jù);另一個(gè)是testdata,即人工標(biāo)注好的數(shù)據(jù)。

使用方法: 啟動(dòng)neo4j,mongodb之后,進(jìn)入demo目錄,啟動(dòng)django服務(wù),進(jìn)入127.0.0.1:8000/tagging即可使用

3.命名實(shí)體識(shí)別:

使用thulac工具進(jìn)行分詞,詞性標(biāo)注,命名實(shí)體識(shí)別(僅人名,地名,機(jī)構(gòu)名) 為了識(shí)別農(nóng)業(yè)領(lǐng)域特定實(shí)體,我們需要:

  1. 分詞,詞性標(biāo)注,命名實(shí)體識(shí)別

  2. 以識(shí)別為命名實(shí)體(person,location,organzation)的,若實(shí)體庫(kù)沒(méi)有,可以標(biāo)注出來(lái)

  3. 對(duì)于非命名實(shí)體部分,采用一定的詞組合和詞性規(guī)則,在O(n)時(shí)間掃描所有分詞,過(guò)濾掉不可能為農(nóng)業(yè)實(shí)體的部分(例如動(dòng)詞肯定不是農(nóng)業(yè)實(shí)體)

  4. 對(duì)于剩余詞及詞組合,匹配知識(shí)庫(kù)中以分好類(lèi)的實(shí)體。如果沒(méi)有匹配到實(shí)體,或者匹配到的實(shí)體屬于0類(lèi)(即非實(shí)體),則將其過(guò)濾掉。

  5. 實(shí)體的分類(lèi)算法見(jiàn)下文。

3.1實(shí)體分類(lèi):

3.1.1特征提?。?/h1>

3.1.2分類(lèi)器:KNN算法

  • 無(wú)需表示成向量,比較相似度即可

  • K值通過(guò)網(wǎng)格搜索得到

  • 定義兩個(gè)頁(yè)面的相似度sim(p1,p2):

    • title之間的詞向量的余弦相似度(利用fasttext計(jì)算的詞向量能夠避免out of vocabulary)

    • 2組openType之間的詞向量的余弦相似度的平均值

    • 相同的baseInfoKey的IDF值之和(因?yàn)椤形拿@種屬性貢獻(xiàn)應(yīng)該比較?。?/p>

    • 相同baseInfoKey下baseInfoValue相同的個(gè)數(shù)

    • 預(yù)測(cè)一個(gè)頁(yè)面時(shí),由于KNN要將該頁(yè)面和訓(xùn)練集中所有頁(yè)面進(jìn)行比較,因此每次預(yù)測(cè)的復(fù)雜度是O(n),n為訓(xùn)練集規(guī)模。在這個(gè)過(guò)程中,我們可以統(tǒng)計(jì)各個(gè)分相似度的IDF值,均值,方差,標(biāo)準(zhǔn)差,然后對(duì)4個(gè)相似度進(jìn)行標(biāo)準(zhǔn)化:(x-均值)/方差

    • 上面四個(gè)部分的相似度的加權(quán)和為最終的兩個(gè)頁(yè)面的相似度,權(quán)值由向量weight控制,通過(guò)10折疊交叉驗(yàn)證+網(wǎng)格搜索得到

3.2 Labels:(命名實(shí)體的分類(lèi))


4.農(nóng)業(yè)知識(shí)圖譜關(guān)系抽取

使用遠(yuǎn)程監(jiān)督方法構(gòu)建數(shù)據(jù)集,利用tensorflow訓(xùn)練PCNN模型

4.1關(guān)系自動(dòng)抽取

農(nóng)業(yè)知識(shí)圖譜關(guān)系抽取

  • data

處理數(shù)據(jù)集,得到關(guān)系抽取需要用到的json文件

步驟:

  • 如果當(dāng)前文件夾下沒(méi)有filter_train_data_all_deduplication.txt, 那么進(jìn)入wikidataSpider目錄,根據(jù)TrainDataBaseOnWiki/readme.md中所述方法,獲得filter_train_data_all_deduplication.txt (生成數(shù)據(jù)時(shí)間比較長(zhǎng),建議用公開(kāi)數(shù)據(jù)集測(cè)試。使用公開(kāi)數(shù)據(jù)集,直接從進(jìn)入Algorithm,忽略之后所有的操作)

  • 運(yùn)行python dosomething.py filter_dataset 得到filtered_data.txt

  • 運(yùn)行python preprocessing.py rel2id 得到rel2id.json

  • 運(yùn)行python preprocessing.py dataset.json得到dataset.json

  • 運(yùn)行python preprocessing.py word2vecjson 得到word2vec.json

  • 運(yùn)行python preprocessing.py entity2id得到entity2id.json

  • 運(yùn)行python preprocessing.py dataset_split得到traindataset.json和testdataset.json

得到的rel2id.json,word2vec.json,entity2id.json,traindataset.json和testdataset.json為關(guān)系提取算法所需的數(shù)據(jù),將其放在algorithm的data/agriculture目錄下

4.2 關(guān)系提取的算法

關(guān)系提取的算法部分,tensorflow實(shí)現(xiàn),代碼框架以及PCNN的實(shí)現(xiàn)參照

更多優(yōu)質(zhì)內(nèi)容請(qǐng)關(guān)注公號(hào)&知乎:汀丶人工智能;會(huì)提供一些相關(guān)的資源和優(yōu)質(zhì)文章,免費(fèi)獲取閱讀。

項(xiàng)目鏈接

[項(xiàng)目碼源點(diǎn)擊跳轉(zhuǎn)] (https://blog.csdn.net/sinat_39620217/article/details/131591240)



教學(xué)構(gòu)建農(nóng)業(yè)知識(shí)圖譜:農(nóng)業(yè)領(lǐng)域的信息檢索+智能問(wèn)答的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
莆田市| 靖边县| 荣昌县| 靖西县| 濮阳县| 灵丘县| 宁乡县| 城步| 京山县| 合阳县| 乌兰县| 靖远县| 台北市| 开远市| 扎赉特旗| 尼木县| 滕州市| 锡林浩特市| 泸州市| 班戈县| 砀山县| 临城县| 铜山县| 湖州市| 兴和县| 青河县| 五原县| 清河县| 新龙县| 镇赉县| 宁波市| 绵阳市| 容城县| 襄樊市| 江门市| 吉隆县| 略阳县| 塔河县| 武安市| 左云县| 东方市|