![](https://habrastorage.org/files/2a3/d81/137/2a3d81137cca4753b89ca341f034a7a2.png)
æå·ã¯ãSQLããWHEREãORDER BYãªã©ã®ããŒã¯ãŒããåããŸããã PythonãHaskellãSPARQLãªã©ã®ããŸããŸãªèšèªã®æ§æã ãã®çµæã ASCIIã¢ãŒãã®ãããªèŠèŠçãªåœ¢åŒã§ã°ã©ãã¯ãšãªãäœæã§ããèšèªãç»å ŽããŸããã ããšãã°ããã®èšäºã®ã¿ã€ãã«ã¯ãã°ã©ãïŒNeo4jïŒ-[åŠç¿]->ïŒWordnetïŒã®åœ¢åŒã§è¡šç€ºããŸãã ãããŠãããã¯ã»ãšãã©æ¢è£œã®ããŒã¿ããŒã¹ã¯ãšãªã§ãïŒ
ã°ã©ãæåããŒã¿ããŒã¹ãåŠç¿ããã«ã¯ãäœããã®ã°ã©ããå¿ èŠã§ãã ããã¯ããœãŒã·ã£ã«ãããã¯ãŒã¯ããŠã£ãããã£ã¢ãã³ãããŸãã¯ééå°å³ã§ãã ç°¡åãªæ¹æ³ã§ã Wordnetã¬ãã·ã«ã«ããŒã¿ããŒã¹ã®å·šå€§ãªãããªãã¯ã°ã©ãã䜿çšããŸãã ããªã³ã¹ãã³ã®èšèªåŠè ã¯è±èªã®èªåœãæŽçãããšãã倧å€ãªä»äºãããæ奜家ã¯ããŒã¿ããŒã¹ããã·ã¢èªãå«ãå€ãã®èšèªã«ç¿»èš³ããŸããã ããšãã°ããã®ããŒã¿ããŒã¹ã«ã¯ããå矩èªããã倧éšåã®ãããã®ææããªã©ã®åå¥é¢ä¿ã§çžäºæ¥ç¶ããã8äžä»¥äžã®åè©ããããŸãããã®ããŒã¿ããŒã¹ã¯èªç¶ãªã°ã©ãã§ãããNeo4jã«ã€ã³ããŒãããŸãã
Neo4jãã€ã³ã¹ããŒã«ãã
ããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã€ã³ã¹ããŒã«ããã»ã¹ã«ã€ããŠã¯ã ãµã€ãã§èª¬æããŠããŸã ã ããã§èª¬æãããœãããŠã§ã¢ã¯ãã¹ãŠãã©ãããã©ãŒã ã«äŸåããŸããããæ確ã«ããããããã¹ãŠã®æ瀺ã¯Debian / Ubuntuåãã§ãã
1.ãªããžããªãè¿œå ãã
wget -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add - echo 'deb http://debian.neo4j.org/repo stable/' >/tmp/neo4j.list sudo mv /tmp/neo4j.list /etc/apt/sources.list.d sudo apt-get update
2. Neo4jïŒã³ãã¥ããã£ãšãã£ã·ã§ã³ïŒãã€ã³ã¹ããŒã«ããŸã
sudo apt-get install neo4j
ãã®ã³ãã³ãã¯ãããŒã ãã£ã¬ã¯ããªã«ãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ãããµãŒãã¹ãéå§ããŸããããã¯ããŠãŒã¶ãŒneo4jãšããŠæ©èœããŸãã
3.ãªã¢ãŒãã¢ã¯ã»ã¹ãèš±å¯ãã
Neo4jãã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããå Žåã¯ããã®æé ãã¹ãããããŠãã ããã ããŒã«ã«ãããã¯ãŒã¯äžã®ä»ã®ã³ã³ãã¥ãŒã¿ãŒãããµãŒããŒã«ã¢ã¯ã»ã¹ããå¿ èŠãããå Žåã¯ããã¡ã€ã«/var/lib/neo4j/conf/neo4j-server.propertiesãç·šéããŸã
ããŒã«ã«ãããã¯ãŒã¯äžã®ä»»æã®ã³ã³ãã¥ãŒã¿ãŒããã¢ã¯ã»ã¹ããã«ã¯ããã©ã¡ãŒã¿ãŒãèšå®ããŸãã
org.neo4j.server.webserver.address=0.0.0.0 dbms.security.auth_enabled=false
ããã©ã«ãã§ã¯ãããŒã7474ã䜿çšãããŸãããåããã¡ã€ã«ã«è¡ãè¿œå ããŠããŒããå€æŽã§ããŸãã
org.neo4j.server.webserver.port=7474
DBMSã»ãã¥ãªãã£ãèšå®ããŠããªãããšã«æ³šæããŠãã ããïŒ æ瀺ãããã«è©³ããèªãã§ãã ãã ã
ãã©ãŠã¶ã«ãµãŒããŒã®ã¢ãã¬ã¹ãšããŒããå ¥åããŠãã€ã³ã¹ããŒã«ã確èªã§ããŸãã Neo4jã¯ããã©ãŠã¶ãä»ããŠè±ªè¯ãªã°ã©ãã£ãã¯ã³ã³ãœãŒã«ãå®è£ ããŠããŸãã 次ã®ã¹ãããã§ã€ã³ã¹ããŒã«ããã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ããããŒã¿ããŒã¹ãžã®RESTèŠæ±ã¯ãåãããŒããééããŸãã
ã¯ã©ã€ã¢ã³ãã€ã³ã¹ããŒã«ïŒPythonïŒ
WordnetããŒã¿ããŒã¹ãNeo4jã«ã€ã³ããŒãããããã«ãPythonã¹ã¯ãªããã䜿çšããŸãã
1.ãŸãã py2neoã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããå¿ èŠããããŸã
pip install py2neo
2. githubããã¹ã¯ãªãããããŠã³ããŒãããŸã
mkdir habrawordnet2neo4j cd habrawordnet2neo4j git clone https://github.com/sergey-zarealye-com/wordnet2neo4j.git
ãã®ã¹ã¯ãªããã¯ãå·¥æ¥å質ã®ã³ãŒãã§ãããšã»ãšãã©äž»åŒµããŠããŸããããPythonã®Neo4jãè©ŠããŠã¿ããå Žåã¯ãã³ãŒããèŠãŠãã ãããããã«ãããããã°ã©ãã³ã°ãè¿ éã«éå§ã§ããŸãã
Wordnetã¬ãã·ã«ã«ããŒã¿ããŒã¹ã®ååŸ
Wordnetãããžã§ã¯ãã®ããŠã³ããŒãããŒãžã§ãããŒã¿ããŒã¹ã衚瀺ããããã®ãœãããŠã§ã¢ãšäžç·ã«ããŠã³ããŒãããããšãææ¡ãããŠããŸãã ãã ãã衚瀺ã«ã¯Neo4jã䜿çšããŸãïŒ ãããã£ãŠãããŒã¿ãã¡ã€ã«ã®ã¿ãããŠã³ããŒãããã ãã§ååã§ãã
- Wordnetã®ææ°ããŒãžã§ã³ã®è±èªããŒã¿ããŒã¹ã¯ã次ã®ãµã€ãã§å ¥æã§ããŸãã
- 以åã®ããŒãžã§ã³ ïŒImageNetãšã®äºææ§ãªã©ïŒ
- wordnet.ruãããã·ã¢èªçãããŠã³ããŒãããããšããå§ãããŸã
ãã¡ã€ã«ãã¢ã¯ã»ã¹å¯èœãªå Žæã«è§£åããŸãã
Neo4jã«ããŒã¿ãã€ã³ããŒããã
Wordnetã®åå¥ããŒã¿ã¯ãåè©ã®ãã¡ã€ã«ã«ãããŸãã ããšãã°ãåè©ã¯ãã¡ã€ã«data.nounã«ãããŸãã data.verbã®åè©ã ããããä»ã®åè©ã§ã¯ç§ã¯è©ŠããŠããŸããã
1.åè©ã®ã€ã³ããŒã
åè©ãã€ã³ããŒãããã«ã¯ãã¹ã¯ãªãããé 眮ããããã£ã¬ã¯ããªïŒhabrawordnet2neo4jãšåŒã³ãŸãïŒã«ç§»åããã³ã³ãœãŒã«ã§ã³ãã³ããå®è¡ããŸãã
python wordnet2neo4j.py -i rwn3/data.noun --neo4j http://127.0.0.1:7474 --nodelabel Ruswordnet --reltype Pointer --encoding cp1251 --limit 1000
ãã©ã¡ãŒã¿ãŒãããã«è©³ããèŠãŠã¿ãŸãããã
-i WordnetããŒã¿ãã¡ã€ã«ãžã®ãã¹ --neo4j Neo4jããŒã¿ããŒã¹ãµãŒããŒã®URL --nodelabel Wordnetã¯ãŒãã«äžèŽããããŒãã«ã©ãã«ãä»ãã äœæãããã°ã©ãïŒNeo4jã§ã¯ãã°ã©ãã®ããŒã㯠ããã¹ãã©ãã« ããã¯åãªãèå¥åã§ãïŒ --reltype Wordnetãã€ã³ã¿ãŒã«äžèŽããã°ã©ããšããžã®ã¿ã€ã ïŒNeo4jã§ã¯ãã°ã©ãã®ãšããžã¯ã¿ã€ãã«ããããšãã§ããŸã;ããã¯ã¡ããã© èå¥åïŒ --encodingããŒã¿ãã¡ã€ã«ã®ãšã³ã³ãŒãã ãã·ã¢èªã®ããŒã¿ããŒã¹ãèšé²ãããŸãã ãšã³ã³ãŒããããcp1251; è±èªã®ãã¡ã€ã«ã¯ãã ãã©ã¡ãŒã¿ãŒãæå®ããå¿ èŠã¯ãããŸãã --limitãã¡ã€ã«ã®åŠçãããè¡ã®æ倧æ°ã å®éãç§ã®ã¹ã¯ãªããã®å®è¡ã¯éåžžã«é ãã è©ŠããŠã¿ããšãã€ã³ããŒãã®éãå¶éã§ããŸã ããŒã¿ãããšãã°ããã¡ã€ã«ã®æåã®1000è¡ã ã€ã³ããŒãçš å®å šãªãã¡ã€ã«ããã®ãã©ã¡ãŒã¿ãŒãæå®ããå¿ èŠã¯ãããŸããã 1æéååŸ ã€æºåãããŸãã
2.åè©ã®ã€ã³ããŒã
åè©ãã€ã³ããŒãããã«ã¯ãã³ã³ãœãŒã«ã§ã³ãã³ããå®è¡ããŸãã
python wordnet2neo4j.py -i rwn3/data.verb --neo4j http://127.0.0.1:7474 --nodelabel Ruswordnet --reltype Pointer --encoding cp1251 --limit 1000
åè©ã®ã€ã³ããŒãã¯ãªãã·ã§ã³ã§ãããäžéšã¯åè©ã«é¢é£ããŠããŸãããããã¯åŠã¶ã®ã«èå³æ·±ããã®ã§ãã
3.ããŒã¿ãã€ã³ããŒããããããšã確èªããŸãã
ãããè¡ãã«ã¯ããã©ãŠã¶ã§Neo4jã³ã³ãœãŒã«ãéãïŒDBMSãµãŒããŒã®ã¢ãã¬ã¹ãšããŒããå ¥åïŒã次ã®ã¯ãšãªãå ¥åããŸãã
MATCH (node)-[relation]-() RETURN node, relation LIMIT 100
ç»é¢ã«ã°ã©ãç»åãåãåã£ããããã¹ãŠãããŸããããŸããã
ç°¡åãªã¯ãšãªãå®è¡ããŸã
ãã以éã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ããã©ãŠã¶ã®Neo4jã³ã³ãœãŒã«ã§å®è¡ãããŸãã ããŒãã©ãã«ãšããŠRuswordnetã䜿çšãããšããžã¿ã€ããšããŠãã€ã³ã¿ãŒã䜿çšãããšä»®å®ããŸãïŒåã®ã»ã¯ã·ã§ã³ã§ç€ºãããšããïŒã ãããŠããã·ã¢èªã®WordnetããŒã¿ããŒã¹å šäœãã€ã³ããŒãããããšã
1. Hello World
ãã·ã¢èªã®WordnetããŒã¿ããŒã¹ã®Webãµã€ãã«ç€ºãããŠããããã«ãæãäžè¬çãªåèªãå«ãã»ãã³ãã£ãã¯ãŠãããã®çŽååã翻蚳ãããŠããŸãã ãããã£ãŠãããŒã¿ããŒã¹ã§æåã«æãã€ãããã®ãèŠã€ããããšããŸãã
MATCH (n:Ruswordnet {name: "_"}) RETURN n
èŠæ±ãæºããããã®æŠå¿µãèŠã€ããããšã確èªããŠãã ãããããã¯ããã·ã¢èªã®èšèªåŠè ã«ããã°ãæãäžè¬çã«äœ¿çšãããæŠå¿µã®1ã€ã§ããããšãæå³ããŸãã ãã®åçŽãªã¯ãšãªãèŠãŠã¿ãŸãããã
MATCHããŒã¯ãŒãã¯ãSQLã®SELECTãšã»ãŒåãæå³ã§ãã 倧ãŸãã«èšã£ãŠãããã³ãã¬ãŒãã«é©åããã°ã©ãã®èŠçŽ ãèŠã€ãããã
æ¬åŒ§ã¯ã°ã©ãã®ããŒãã瀺ããŸãã ãã¿ãŒã³ïŒnïŒRuswordnetïŒã¯ããRuswordnetããšããã©ãã«ãä»ãããã¹ãŠã®ããŒããæ€çŽ¢ããããšã瀺ããŸãã ããã§nã¯èå¥åã§ããããå€æ°ããšèšãããšãã§ããŸãã
ã°ã©ãã®ããŒãïŒããã³ãšããžïŒã«ã¯ãä»»æã®å±æ§ãæå®ã§ããŸãã ç¹å®ã®ããŒããèŠã€ããããã«ããªã¯ãšã¹ãã§å±æ§ã®æ¡ä»¶ãJSONã«äŒŒã圢åŒã§æå®ããŸããïŒ {nameïŒ "digging out a corpse"} ã ã ãããã¬ãŒãº
MATCH (n:Ruswordnet {name: "_"})
ã¯ãã°ã©ãå šäœãããRuswordnetã©ãã«ãšããã«ç€ºãããŠããã³ã³ã»ããã«çããå±æ§åãæã€ãã¹ãŠã®ããŒããéžæãããããšãæå³ããŸãã
RETURNããŒã¯ãŒãã¯ãã©ã®å€æ°ã«é¢å¿ããããã瀺ããŸãã ãã®å Žåãæå®ãããæ¡ä»¶ãæºããããŒãã確èªãããã ããªã®ã§ã RETURN nãšèšè¿°ããŸãã nã¯ã¯ãšãªãæºããããŒãã®ã³ã¬ã¯ã·ã§ã³ã§ããããšãç解ããããšãéèŠã§ãã ããã確èªããã«ã¯ãã¯ãšãªã®æŠå¿µãåçŽã«çœ®ãæããŸãã
MATCH (n:Ruswordnet {name: ""}) RETURN n
WordnetããŒã¿ããŒã¹å šäœãã€ã³ããŒãããå Žåãã©ã€ãªã³ã®æŠå¿µã®6ã€ã®ããŒãã衚瀺ãããŸãã çç±ãèŠãŠã¿ãŸãããã
2.å€æ°=ã³ã¬ã¯ã·ã§ã³
次ã®ãªã¯ãšã¹ããå®è¡ããŸãã
match (n:Ruswordnet {name: ""})--(m) return n,m
ããã§ã¯ãããè€éãªæ€çŽ¢ãã³ãã¬ãŒããèšå®ããŸããã ãã©ã€ãªã³ãã®æŠå¿µã«å¯Ÿå¿ãããã¹ãŠã®ããŒãïŒnïŒãšãã©ã€ãªã³ã«é¢é£ä»ããããŠãããã¹ãŠã®ããŒãïŒmïŒãæ€çŽ¢ããŸãã æ¥ç¶ãã€ãŸãã°ã©ãã®ç«¯ã¯2ã€ã®ãã€ãã³ã§ç€ºãããŸãã ã·ã³ãã«->ïŒãããASCIIã¢ãŒããšåŒã³ãŸãïŒã䜿çšããŠãé¢å¿ã®ããæ¹åãæ瀺çã«ç€ºãããšãã§ããŸãã
![](https://habrastorage.org/files/c10/5f6/d27/c105f6d271c64151af1adc59cf859f10.png)
ã»ãã³ãã£ãã¯ãŠãããã®ååã衚瀺ãããªãå Žåã¯ãã°ã©ãã®å·Šäžé ã«ããRuswordnetãã¿ã³ïŒ23ïŒãã¯ãªãã¯ããã³ã³ãœãŒã«ã®äžéšã«ããã¹ããŒã¿ã¹ããŒã®[ãã£ãã·ã§ã³]ãã£ãŒã«ãã§[åå]ãéžæããŸãã ãããã£ãŠãããæ確ã«ãªããŸãã
ä»ãã©ã€ãªã³ã¯ãã«ã¬ãªã¢ã®é貚ïŒbulgarian_moneyïŒã ãã§ãªãããããŒãstotinkaã§ããã ãã§ãªãã倧ããªç«ãæ座ãå æè¡ã®ãµã€ã³ããã©ã€ãã«é¢é£ãããã®ã§ãããããšã«æ°ä»ããŸããã
3.ãªããæ¥ç¶ãã
WordnetããŒã¿ããŒã¹ã§ã¯ããšããžã¯ãã€ã³ã¿ãŒãšåŒã°ããå€æ°ã®èšèªã¿ã€ãã®ãã€ã³ã¿ãŒã䜿çšãããŸãã ãããã¯èšå·ã§ç€ºãããŠããããã®äžéšãè¡šã«ç€ºããŸãã
èšå· | èšèªé¢ä¿ã®è±èªå | èšèªæ 床 |
---|---|---|
ïŒ | å¿å | åæèª |
@ | ãã€ããŒãã | äžè¬å |
@i | ã€ã³ã¹ã¿ã³ã¹Hypernym | æ±åã€ã³ã¹ã¿ã³ã¹ |
ã | ãããã | æ確å |
ãç§ | ã€ã³ã¹ã¿ã³ã¹ã®Hyponym | çµã蟌ã¿ã€ã³ã¹ã¿ã³ã¹ |
#m | äŒå¡ãããã | ãã®æŠå¿µãå«ãæŠå¿µ |
#s | ç©è³ªã®ãããã | ã¢ã€ãã ãæ§æããç©è³ª |
#p | ããŒããããã | ãã®ä»¶åã®äžéšãšããŠå«ãŸãã件å |
ïŒ m | ã¡ã³ããŒã¡ããã | ããäžè¬çãªæŠå¿µã®äžéš |
ïŒ s | ãµãã¹ã¿ã³ã¹ã¡ããã | ã©ããªç©è³ªã察象ã§ããïŒ |
ïŒ p | ããŒãã¡ããã | ã¢ã€ãã ããŒã |
= | å±æ§ | å±æ§ |
+ | 掟ççã«é¢é£ãããã©ãŒã | 埮ååœ¢åŒ |
ã€ã³ããŒãããã»ã¹äžã«ãpointer_symbolå±æ§ãã°ã©ãã®ãšããžã«å²ãåœãŠããšããžã®å±æ§ãèæ ®ããã¯ãšãªãäœæã§ããããã«ãªããŸããã äžè¬åïŒhypernumïŒãšã¯äœããèŠãŠã¿ãŸãããïŒ
MATCH (n:Ruswordnet {name: ""})-[p:Pointer {pointer_symbol: "@"}]->(m) RETURN n,m
è§æ¬åŒ§ã¯ããšããžã®ä»æ§ã瀺ããŸãã ãã®ã¯ãšãªã§ã¯ãpointer_symbolå±æ§ãã@ããã€ãŸãæ±çšæåã§ããPointeråã®ãšããžãæ€çŽ¢ããŸãã ã¡ãªã¿ã«ãæŽç·Žèšå·ãããã¯äžè¬åã®å察ã§ãã
![](https://habrastorage.org/files/76b/b3b/879/76bb3b879fce400fbb8eca34cf5ad670.png)
ã©ã€ãªã³ã®äžè¬åã¯ã人éã§ãããšåæã«ç«ã§ããããšã¯æããã§ãã ãã¡ãããç§ãã¡ã¯ããŸããŸãªæå³åäœã«ã€ããŠè©±ããŠããŸããã©ã€ãªã³ïŒç«ïŒã¯ã°ã©ãã®1ã€ã®ããŒãã§ãããã©ã€ãªã³ïŒç·ïŒã¯æ座ã«å¯Ÿå¿ããå¥ã®ããŒãã§ãã ã¬ãªïŒå声ïŒã¯ããã·ã¢èªãžã®ç¿»èš³ãäžååãªçµæã§ãã ç§ã¯ã©ã€ãªã³ïŒæå人ïŒãããªãã¡ãæå人ãäžä¿çãªã©ã€ãªã³ãæå³ããŸãã
ãããã ãšã¯äœããèŠãŠã¿ãŸãããïŒ
MATCH (n:Ruswordnet {name: ""})-[p:Pointer {pointer_symbol: "#p"}]->(m) RETURN n,m
ãããŠä»ãã¯ã£ããããŠããïŒã©ã€ãªã³ã¯äžäœã®éšåãšããŠé»é垯ã«å ¥ããŸããã€ãŸããé»é垯ã¯ã©ã€ãªã³ã®äžéšã®ç¥èªã§ãã
ãã®è¡šãããWordnetã«ã¯å€ãã®èå³æ·±ãé¢ä¿ãå«ãŸããŠããããšãããããŸãïŒããšãã°ãç©è³ªã®æ§æèŠçŽ ãªã©ïŒã æ®å¿µãªãããã©ã€ãªã³ãèã§ã§ããŠãããšããæ å ±ã¯ãªãã®ã§ãç§ãã¡ã¯ç°ãªã質åãæããããŸãããã©ã®ç©è³ªããäœãããã®ãããšããé¢ä¿ã«ãã£ãŠé¢ä¿ä»ããããã°ã©ãã®ããŒããèŠã€ããŸãã
MATCH (n)-[p:Pointer {pointer_symbol: "#s"}]->(m) RETURN n,m LIMIT 10
ãã®ã¯ãšãªã§ã¯ãããŒãïŒnïŒããã³ïŒmïŒã«æ¡ä»¶ã課ããŸããã ãšããžãã#sãå±æ§ã«é¢é£ä»ããã ãã§ãã SQLã§ããç¥ãããŠããLIMITããŒã¯ãŒãã«æ³šç®ããŠãã ããã ããã«ãªãå ŽåããµãŒããŒã¯å€ãã®çµæãè¿ããŸããããã©ãŠã¶ãŒã«ãšã£ãŠã¯æªãçµæã«ãªããŸãã
ãªã¯ãšã¹ãã®çµæãã¿ãã³ã¯ããªãã¡ãã§æ§æãããçé©ã¹ãŒãã¯çæ¯ã§æ§æãããŠããããšãããããŸããã
4.ä»»æã®é·ãã®ãã§ãŒã³
åäŸã®é ã誰ãã次ã®ã²ãŒã ããã¬ã€ããŸãããããšã象ã«å€ããŠãã ããã ãããè¡ãã«ã¯ãåèªMUHAãåèªELEPHANTã«å€ãããŸã§ãåèªå ã®1æåãå€æŽããå¿ èŠããããŸããã åå¥ã®åã§ãLEOãšOVCAãé¢é£ããŠãããã©ããã調ã¹ãŸãããã
MATCH (n:Ruswordnet {name: ""})-[p:Pointer*1..3]-(m:Ruswordnet {name: ""}) RETURN n,m,p
æ§é [pïŒPointer * 1..3]ã¯ãããŒããlionããšããŒããsheepããæ¥ç¶ãããé·ãã1ãã3ã®Pointerã¿ã€ãã®ãªãã®ãã§ãŒã³ãèŠã€ããå¿ èŠããããšè¿°ã¹ãŠããŸãã
![](https://habrastorage.org/files/eaf/4e5/bc9/eaf4e5bc956646e59915ab82978225b1.png)
ããã¯ãå€å žçãªåäŸåãã®ã²ãŒã ãšã¯ç°ãªããŸãããèå³æ·±ãããšã§ããçŸ-PROSTAK-MAN-ã©ã€ãªã³...ããã¯èªãããã«èãããŸãã ã¡ãªã¿ã«ãããšãšãŸãŠã®éã®ã€ãªãããèŠã€ããããšããããšãã§ããŸãããã§ãŒã³ã®æ倧é·ããããã«å¢ããã ãã§ãã å€6ã䜿çšããŸããããšããã§ãããã«100ãå ¥åããããšããªãã§ãã ãã-ã°ã©ãå ã®ãã¹ãåæããããã®ãªãã·ã§ã³ã®æ°ãå€ããããããæ€çŽ¢ããã»ã¹ã倱æããå¯èœæ§ããããŸãã ãããã£ãŠãããã¯è±¡ãšããšãåå¥çã«æ¥ç¶ãããæ¹æ³ã§ãã
![](https://habrastorage.org/files/fad/4e9/0ca/fad4e90ca6c84d328c59f386eb8b0cf0.png)
ãã®æ®µéã§ãããªãã¯Neo4jããŒã¿ããŒã¹ã«ã€ããŠå€ãã®ããšãç解ããWordnetããŒã¿ããŒã¹ã§å€ãã®èå³æ·±ãããšãåå¥ã«çºèŠã§ãããããžã§ã¯ãã§Neo4jã䜿çšã§ãããšæããŸãã æ ç»ã¢ãŒã«ã€ãæ€çŽ¢ã·ã¹ãã ã§ã¯ãWordnetã§Neo4jã䜿çšããŸãã æ©æ¢°åŠç¿ã®åéã§ã®ç 究ã«åå ãããå Žåã¯ãNIKFI-ç§åŠããã³ç 究æ ç»ããã³åçç 究æã§ã®ã€ã³ã¿ãŒã³ã·ãããŸãã¯æä¹ çãªä»äºã«æåŸ ããŸãã