{ "info": { "author": "lightsmile", "author_email": "iamlightsmile@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries" ], "description": "# lightKG\uff0clightsmile\u4e2a\u4eba\u7684\u77e5\u8bc6\u56fe\u8c31\u6280\u672f\u6846\u67b6\n\n## \u524d\u8a00\n\n\u6839\u636e\u77e5\u8bc6\u56fe\u8c31\u53d1\u5c55\u62a5\u544a2018\u76f8\u5173\u4ecb\u7ecd\uff0c\u6846\u67b6\u4e3b\u8981\u8bbe\u8ba1\u4e3a\u6709\u4ee5\u4e0b\u4e94\u5927\u529f\u80fd\uff1a\n\n- \u77e5\u8bc6\u8868\u793a\u5b66\u4e60\uff0c Knowledge Representation Learning\n- \u5b9e\u4f53\u8bc6\u522b\u4e0e\u94fe\u63a5\uff0c Entity Recognition and Linking\n- \u5b9e\u4f53\u5173\u7cfb\u62bd\u53d6\uff0c Entity Relation Extraction\n- \u4e8b\u4ef6\u68c0\u6d4b\u4e0e\u62bd\u53d6\uff0c Event Detection and Extraction\n- \u77e5\u8bc6\u5b58\u50a8\u4e0e\u67e5\u8be2\uff0c Knowledge Storage and Query\n- \u77e5\u8bc6\u63a8\u7406\uff0c Knowledge Reasoning\n\n\u56e0\u6b64\u5c06\u6709\u516d\u4e2a\u4e3b\u8981\u7684\u529f\u80fd\u6a21\u5757\uff1akrl\uff08\u77e5\u8bc6\u8868\u793a\u5b66\u4e60\uff09\u3001erl\uff08\u5b9e\u4f53\u8bc6\u522b\u4e0e\u94fe\u63a5\uff09\u3001ere\uff08\u5b9e\u4f53\u5173\u7cfb\u62bd\u53d6\uff09\u3001ede\uff08\u5b9e\u4f53\u68c0\u6d4b\u4e0e\u62bd\u53d6\uff09\u3001ksq\uff08\u77e5\u8bc6\u5b58\u50a8\u4e0e\u67e5\u8be2\uff09\u3001kr\uff08\u77e5\u8bc6\u63a8\u7406\uff09\u4ee5\u53ca\u5176\u4ed6\u529f\u80fd\u6a21\u5757\u3002\n\n## \u5f53\u524d\u5df2\u5b9e\u73b0\u7684\u529f\u80fd\n\n### \u77e5\u8bc6\u8868\u793a\u5b66\u4e60\n\n- \u57fa\u4e8e\u7ffb\u8bd1\u6a21\u578b(Trans\u7cfb\u5217)\u7684\u77e5\u8bc6\u8868\u793a\u5b66\u4e60\uff0c TransE\n\n### \u5b9e\u4f53\u8bc6\u522b\u4e0e\u94fe\u63a5\n\n- \u547d\u540d\u5b9e\u4f53\u8bc6\u522b\uff0c ner\n\n### \u5b9e\u4f53\u5173\u7cfb\u62bd\u53d6\n\n- \u5173\u7cfb\u62bd\u53d6\uff0c re\n\n### \u4e8b\u4ef6\u68c0\u6d4b\u4e0e\u62bd\u53d6\n\n- \u8bed\u4e49\u89d2\u8272\u6807\u6ce8\uff0c srl\n\n### \u77e5\u8bc6\u5b58\u50a8\u4e0e\u67e5\u8be2\n\n### \u77e5\u8bc6\u63a8\u7406\n\n## \u5b89\u88c5\n\n\u672c\u9879\u76ee\u57fa\u4e8ePytorch1.0\n\n```bash\npip install lightKG\n```\n\n\u5efa\u8bae\u4f7f\u7528\u56fd\u5185\u6e90\u6765\u5b89\u88c5\uff0c\u5982\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a\n```bash\npip install -i https://pypi.douban.com/simple/ lightKG\n```\n\n### \u5b89\u88c5\u4f9d\u8d56\n\n\u7531\u4e8e\u6709\u4e9b\u5e93\u5982pytorch\u3001torchtext\u5e76\u4e0d\u5728pypi\u6e90\u4e2d\u6216\u8005\u91cc\u9762\u53ea\u6709\u6bd4\u8f83\u8001\u65e7\u7684\u7248\u672c\uff0c\u6211\u4eec\u9700\u8981\u5355\u72ec\u5b89\u88c5\u4e00\u4e9b\u5e93\u3002\n#### \u5b89\u88c5pytorch\n\n\u5177\u4f53\u5b89\u88c5\u53c2\u89c1[pytorch\u5b98\u7f51](https://pytorch.org/get-started/locally/)\u6765\u6839\u636e\u5e73\u53f0\u3001\u5b89\u88c5\u65b9\u5f0f\u3001Python\u7248\u672c\u3001CUDA\u7248\u672c\u6765\u9009\u62e9\u9002\u5408\u81ea\u5df1\u7684\u7248\u672c\u3002\n\n#### \u5b89\u88c5torchtext\n\n\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u6700\u65b0\u7248\u672ctorchtext\uff1a\n```bash\npip install https://github.com/pytorch/text/archive/master.zip\n```\n\n## \u6a21\u578b\n\n- krl\uff1aTransE\u7b49\n- re: TextCNN\n- srl: BiLstm-CRF\n- ner: BiLstm-CRF\n\n## \u8bad\u7ec3\u6570\u636e\u8bf4\u660e\n\n#### krl\n\ncsv\u683c\u5f0f\n\n\u5171\u4e09\u5217\uff0c\u4f9d\u6b21\u4e3a`\u5934\u5b9e\u4f53`\u3001`\u5173\u7cfb`\u3001`\u5c3e\u5b9e\u4f53`\uff0c \u793a\u4f8b\u5982\u4e0b\uff1a\n\n ```bash\n\u79d1\u5b66,\u5305\u6db5,\u81ea\u7136\u3001\u793e\u4f1a\u3001\u601d\u7ef4\u7b49\u9886\u57df\n\u79d1\u5b66,\u5916\u6587\u540d,science\n\u79d1\u5b66,\u62fc\u97f3,k\u0113 xu\u00e9\n\u79d1\u5b66,\u4e2d\u6587\u540d,\u79d1\u5b66\n\u79d1\u5b66,\u89e3\u91ca,\u53d1\u73b0\u3001\u79ef\u7d2f\u7684\u771f\u7406\u7684\u8fd0\u7528\u4e0e\u5b9e\u8df5\n\u8bed\u6cd5\u5b66,\u5916\u6587\u540d,syntactics\n\u8bed\u6cd5\u5b66,\u4e2d\u6587\u540d,\u8bed\u6cd5\u5b66\n\u7269\u7406\u5b87\u5b99\u5b66,\u5bf9\u8c61,\u5927\u5c3a\u5ea6\u7ed3\u6784\u548c\u5b87\u5b99\u5f62\u6210\n\u7269\u7406\u5b87\u5b99\u5b66,\u65f6\u95f4,\u4e8c\u5341\u4e16\u7eaa\n\u7269\u7406\u5b87\u5b99\u5b66,\u6240\u5c5e,\u5929\u4f53\u7269\u7406\u5b66\n ```\n\n #### ner\n\nBIO\n\n\u8bad\u7ec3\u6570\u636e\u793a\u4f8b\u5982\u4e0b\uff1a\n\n```bash\n\u6e05 B_Time\n\u660e I_Time\n\u662f O\n\u4eba B_Person\n\u4eec I_Person\n\u796d O\n\u626b O\n\u5148 B_Person\n\u4eba I_Person\n\uff0c O\n\u6000 O\n\u5ff5 O\n\u8ffd O\n\u601d O\n\u7684 O\n\u65e5 B_Time\n\u5b50 I_Time\n\u3002 O\n\n\u6b63 O\n\u5982 O\n\u5b8b B_Time\n\u4ee3 I_Time\n\u8bd7 B_Person\n\u4eba I_Person\n```\n\n#### srl\n\nCONLL\n\n\u8bad\u7ec3\u6570\u636e\u793a\u4f8b\u5982\u4e0b\uff0c\u5176\u4e2d\u5404\u5217\u5206\u522b\u4e3a`\u8bcd`\u3001`\u8bcd\u6027`\u3001`\u662f\u5426\u8bed\u4e49\u8c13\u8bcd`\u3001`\u89d2\u8272`\uff0c\u6bcf\u53e5\u4ec5\u6709\u4e00\u4e2a\u8c13\u8bed\u52a8\u8bcd\u4e3a\u8bed\u4e49\u8c13\u8bcd\uff0c\u5373\u6bcf\u53e5\u4e2d\u7b2c\u4e09\u5217\u4ec5\u6709\u4e00\u884c\u53d6\u503c\u4e3a1\uff0c\u5176\u4f59\u90fd\u4e3a0.\n\n```bash\n\u5b8b\u6d69\u4eac NR 0 O\n\u8f6c\u8fbe VV 0 O\n\u4e86 AS 0 O\n\u671d\u9c9c NR 0 O\n\u9886\u5bfc\u4eba NN 0 O\n\u5bf9 P 0 O\n\u4e2d\u56fd NR 0 O\n\u9886\u5bfc\u4eba NN 0 O\n\u7684 DEG 0 O\n\u4eb2\u5207 JJ 0 O\n\u95ee\u5019 NN 0 O\n\uff0c PU 0 O\n\u4ee3\u8868 VV 0 O\n\u671d\u65b9 NN 0 O\n\u5bf9 P 0 O\n\u4e2d\u56fd NR 0 B-ARG0\n\u515a\u653f NN 0 I-ARG0\n\u9886\u5bfc\u4eba NN 0 I-ARG0\n\u548c CC 0 I-ARG0\n\u4eba\u6c11 NN 0 E-ARG0\n\u54c0\u60bc VV 1 rel\n\u91d1\u65e5\u6210 NR 0 B-ARG1\n\u4e3b\u5e2d NN 0 I-ARG1\n\u901d\u4e16 VV 0 E-ARG1\n\u8868\u793a VV 0 O\n\u6df1\u5207 JJ 0 O\n\u8c22\u610f NN 0 O\n\u3002 PU 0 O\n```\n\n#### re\n\n\u8bad\u7ec3\u6570\u636e\u793a\u4f8b\u5982\u4e0b\uff0c\u5176\u4e2d\u5404\u5217\u5206\u522b\u4e3a`\u5b9e\u4f531`\u3001`\u5b9e\u4f532`\u3001`\u5173\u7cfb`\u3001`\u53e5\u5b50`\n\n```bash\n\u94b1\u949f\u4e66\t\u8f9b\u7b1b\t\u540c\u95e8\t\u4e0e\u8f9b\u7b1b\u4eac\u6caa\u5531\u548c\u807d\u94b1\u949f\u4e66\u4e0e\u94b1\u949f\u4e66\u662f\u6e05\u534e\u6821\u53cb\uff0c\u94b1\u949f\u4e66\u9ad8\u8f9b\u7b1b\u4e24\u73ed\u3002\n\u5143\u6b66\t\u5143\u534e\tunknown\t\u4e8e\u5e08\u5085\u5728\u4e00\u6b21\u4eac\u5267\u8868\u6f14\u4e2d\uff0c\u9009\u4e86\u5143\u9f99\uff08\u6d2a\u91d1\u5b9d\uff09\u3001\u5143\u697c\uff08\u5143\u594e\uff09\u3001\u5143\u5f6a\u3001\u6210\u9f99\u3001\u5143\u534e\u3001\u5143\u6b66\u3001\u5143\u6cf07\u4eba\u62c5\u4efb\u4e03\u5c0f\u798f\u7684\u4e3b\u89d2\u3002\n```\n\n ## \u4f7f\u7528\n\n ### krl\n\n#### \u8bad\u7ec3\n\n```python\nfrom lightkg.krl import KRL\n\ntrain_path = '/home/lightsmile/NLP/corpus/kg/baike/train.sample.csv'\ndev_path = '/home/lightsmile/NLP/corpus/kg/baike/test.sample.csv'\nmodel_type = 'TransE'\n\nkrl = KRL()\nkrl.train(train_path, model_type=model_type, dev_path=train_path, save_path='./krl_{}_saves'.format(model_type))\n```\n\n#### \u6d4b\u8bd5\n\n```python\nkrl.load(save_path='./krl_{}_saves'.format(model_type), model_type=model_type)\nkrl.test(train_path)\n```\n\n#### \u9884\u6d4b\n\n##### \u6839\u636e\u5934\u5b9e\u4f53\u3001\u5173\u7cfb\u3001\u5c3e\u5b9e\u4f53\uff0c\u9884\u6d4b\u5176\u6982\u7387\n\n```python\nprint(krl.predict(head='\u7f16\u8bd1\u5668', rel='\u5916\u6587\u540d', tail='Compiler'))\n```\n\n\u8f93\u51fa\u4e3a\uff1a\n```bash\n0.998942494392395\n```\n##### \u6839\u636e\u5934\u5b9e\u4f53\u548c\u5173\u7cfb\uff0c\u9884\u6d4b\u8bad\u7ec3\u96c6\u8bcd\u8868\u4e2dtopk(\u9ed8\u8ba4\u4e3a3)\u4e2a\u53ef\u80fd\u5c3e\u5b9e\u4f53\n\n```python\nprint(krl.predict_tail(head='\u7f16\u8bd1\u5668', rel='\u5916\u6587\u540d'))\n```\n\n\u8f93\u51fa\u4e3a\uff1a\n```bash\n[('Compiler', 0.998942494392395), ('20\u4e16\u7eaa50\u5e74\u4ee3\u672b', 0.3786872327327728), ('\u8bd1\u7801\u5668', 0.3767447769641876)]\n```\n##### \u6839\u636e\u5934\u5b9e\u4f53\u548c\u5c3e\u5b9e\u4f53\uff0c\u9884\u6d4b\u8bad\u7ec3\u96c6\u8bcd\u8868\u4e2dtopk(\u9ed8\u8ba4\u4e3a3)\u4e2a\u53ef\u80fd\u5173\u7cfb\n\n```python\nprint(krl.predict_rel(head='\u7f16\u8bd1\u5668', tail='Compiler'))\n```\n\n\u8f93\u51fa\u4e3a\uff1a\n```bash\n[('\u5916\u6587\u540d', 0.998942494392395), ('\u82f1\u8bd1', 0.8240533471107483), ('\u62fc\u97f3', 0.4082326292991638)]\n```\n##### \u6839\u636e\u5c3e\u5b9e\u4f53\u548c\u5173\u7cfb\uff0c\u9884\u6d4b\u8bad\u7ec3\u96c6\u8bcd\u8868\u4e2dtopk(\u9ed8\u8ba4\u4e3a3)\u4e2a\u53ef\u80fd\u5934\u5b9e\u4f53\n```python\nprint(krl.predict_head(rel='\u5916\u6587\u540d', tail='Compiler'))\n```\n\n\u8f93\u51fa\u4e3a\uff1a\n```bash\n[('\u7f16\u8bd1\u5668', 0.998942494392395), ('\u8bd1\u7801\u5668', 0.36795616149902344), ('\u8ba1\u7b97\u673a\uff0c\u5355\u7247\u673a\uff0c\u7f16\u7a0b\u8bed\u8a00', 0.36788302659988403)]\n```\n\n### ner\n\n#### \u8bad\u7ec3\n\n```python\nfrom lightkg.erl import NER\n\n# \u521b\u5efaNER\u5bf9\u8c61\nner_model = NER()\n\ntrain_path = '/home/lightsmile/NLP/corpus/ner/train.sample.txt'\ndev_path = '/home/lightsmile/NLP/corpus/ner/test.sample.txt'\nvec_path = '/home/lightsmile/NLP/embedding/char/token_vec_300.bin'\n\n# \u53ea\u9700\u6307\u5b9a\u8bad\u7ec3\u6570\u636e\u8def\u5f84\uff0c\u9884\u8bad\u7ec3\u5b57\u5411\u91cf\u53ef\u9009\uff0c\u5f00\u53d1\u96c6\u8def\u5f84\u53ef\u9009\uff0c\u6a21\u578b\u4fdd\u5b58\u8def\u5f84\u53ef\u9009\u3002\nner_model.train(train_path, vectors_path=vec_path, dev_path=dev_path, save_path='./ner_saves')\n```\n\n#### \u6d4b\u8bd5\n\n```python\n# \u52a0\u8f7d\u6a21\u578b\uff0c\u9ed8\u8ba4\u5f53\u524d\u76ee\u5f55\u4e0b\u7684`saves`\u76ee\u5f55\nner_model.load('./ner_saves')\n# \u5bf9train_path\u4e0b\u7684\u6d4b\u8bd5\u96c6\u8fdb\u884c\u8bfb\u53d6\u6d4b\u8bd5\nner_model.test(train_path)\n```\n\n#### \u9884\u6d4b\n\n```python\nfrom pprint import pprint\n\npprint(ner_model.predict('\u53e6\u4e00\u4e2a\u5f88\u9177\u7684\u4e8b\u60c5\u662f\uff0c\u901a\u8fc7\u6846\u67b6\u6211\u4eec\u53ef\u4ee5\u505c\u6b62\u5e76\u5728\u7a0d\u540e\u6062\u590d\u8bad\u7ec3\u3002'))\n```\n\n\u9884\u6d4b\u7ed3\u679c\uff1a\n\n```bash\n[{'end': 15, 'entity': '\u6211\u4eec', 'start': 14, 'type': 'Person'}]\n```\n\n### re\n\n#### \u8bad\u7ec3\n\n```python\nfrom lightkg.ere import RE\n\nre = RE()\n\ntrain_path = '/home/lightsmile/Projects/NLP/ChineseNRE/data/people-relation/train.sample.txt'\ndev_path = '/home/lightsmile/Projects/NLP/ChineseNRE/data/people-relation/test.sample.txt'\nvec_path = '/home/lightsmile/NLP/embedding/word/sgns.zhihu.bigram-char'\n\nre.train(train_path, dev_path=dev_path, vectors_path=vec_path, save_path='./re_saves')\n\n```\n\n#### \u6d4b\u8bd5\n\n```python\nre.load('./re_saves')\nre.test(dev_path)\n```\n\n#### \u9884\u6d4b\n\n```python\nprint(re.predict('\u94b1\u949f\u4e66', '\u8f9b\u7b1b', '\u4e0e\u8f9b\u7b1b\u4eac\u6caa\u5531\u548c\u807d\u94b1\u949f\u4e66\u4e0e\u94b1\u949f\u4e66\u662f\u6e05\u534e\u6821\u53cb\uff0c\u94b1\u949f\u4e66\u9ad8\u8f9b\u7b1b\u4e24\u73ed\u3002'))\n```\n\n\u9884\u6d4b\u7ed3\u679c\uff1a\n\n```python\n(0.7306928038597107, '\u540c\u95e8') # return\u683c\u5f0f\u4e3a\uff08\u9884\u6d4b\u6982\u7387\uff0c\u9884\u6d4b\u6807\u7b7e\uff09\n```\n\n### srl\n\n#### \u8bad\u7ec3\n\n```python\nfrom lightkg.ede import SRL\n\nsrl_model = SRL()\n\ntrain_path = '/home/lightsmile/NLP/corpus/srl/train.sample.tsv'\ndev_path = '/home/lightsmile/NLP/corpus/srl/test.sample.tsv'\nvec_path = '/home/lightsmile/NLP/embedding/word/sgns.zhihu.bigram-char'\n\n\nsrl_model.train(train_path, vectors_path=vec_path, dev_path=dev_path, save_path='./srl_saves')\n```\n\n#### \u6d4b\u8bd5\n\n```python\nsrl_model.load('./srl_saves')\n\nsrl_model.test(dev_path)\n```\n\n#### \u9884\u6d4b\n\n```python\nword_list = ['\u4ee3\u8868', '\u671d\u65b9', '\u5bf9', '\u4e2d\u56fd', '\u515a\u653f', '\u9886\u5bfc\u4eba', '\u548c', '\u4eba\u6c11', '\u54c0\u60bc', '\u91d1\u65e5\u6210', '\u4e3b\u5e2d', '\u901d\u4e16', '\u8868\u793a', '\u6df1\u5207', '\u8c22\u610f', '\u3002']\npos_list = ['VV', 'NN', 'P', 'NR', 'NN', 'NN', 'CC', 'NN', 'VV', 'NR', 'NN', 'VV', 'VV', 'JJ', 'NN', 'PU']\nrel_list = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]\n\nprint(srl_model.predict(word_list, pos_list, rel_list))\n```\n\n\u9884\u6d4b\u7ed3\u679c\uff1a\n\n```bash\n{'ARG0': '\u4e2d\u56fd\u515a\u653f\u9886\u5bfc\u4eba\u548c\u4eba\u6c11', 'rel': '\u54c0\u60bc', 'ARG1': '\u91d1\u65e5\u6210\u4e3b\u5e2d\u901d\u4e16'}\n```\n\n## \u9879\u76ee\u7ec4\u7ec7\u7ed3\u6784\n\n### \u9879\u76ee\u67b6\u6784\n- base\n - config.py\n - model.py\n - module.py\n - tool.py\n- common\n - entity.py\n - relation.py\n- ede\n - srl, \u8bed\u4e49\u89d2\u8272\u6807\u6ce8\n- ere\n - re\uff0c \u5173\u7cfb\u62bd\u53d6\n- erl\n - ner\uff0c \u547d\u540d\u5b9e\u4f53\u8bc6\u522b\n- kr\n- krl\uff0c\u77e5\u8bc6\u8868\u793a\u5b66\u4e60\n - models\n - transE\n - utils\n- ksq\n- utils\n\n### \u67b6\u6784\u8bf4\u660e\n\n#### base\u76ee\u5f55\n\u653e\u4e00\u4e9b\u57fa\u7840\u7684\u6a21\u5757\u5b9e\u73b0\uff0c\u5176\u4ed6\u7684\u9ad8\u5c42\u4e1a\u52a1\u6a21\u578b\u4ee5\u53ca\u76f8\u5173\u8bad\u7ec3\u4ee3\u7801\u90fd\u4ece\u6b64module\u7ee7\u627f\u76f8\u5e94\u7236\u7c7b\u3002\n\n##### config\n\u5b58\u653e\u6a21\u578b\u8bad\u7ec3\u76f8\u5173\u7684\u8d85\u53c2\u6570\u7b49\u914d\u7f6e\u4fe1\u606f\n\n##### model\n\u6a21\u578b\u7684\u5b9e\u73b0\u62bd\u8c61\u57fa\u7c7b\uff0c\u5305\u542b`base.model.BaseConfig`\u548c`base.model.BaseModel`\uff0c\u5305\u542b`load`\u3001`save`\u7b49\u65b9\u6cd5\n\n##### module\n\u4e1a\u52a1\u6a21\u5757\u7684\u8bad\u7ec3\u9a8c\u8bc1\u6d4b\u8bd5\u7b49\u5b9e\u73b0\u62bd\u8c61\u57fa\u7c7b\uff0c\u5305\u542b`base.module.Module`\uff0c\u5305\u542b`train`\u3001`load`\u3001`_validate`\u3001`test`\u7b49\u65b9\u6cd5\n\n##### tool\n\u4e1a\u52a1\u6a21\u5757\u7684\u6570\u636e\u5904\u7406\u62bd\u8c61\u57fa\u7c7b\uff0c\u5305\u542b`base.tool.Tool`\uff0c\u5305\u542b`get_dataset`\u3001`get_vectors`\u3001`get_vocab`\u3001`get_iterator`\u3001`get_score`\u7b49\u65b9\u6cd5\n\n#### common\u76ee\u5f55\n\n##### entity\n\n\u5b9e\u4f53\u57fa\u7c7b, \u6240\u6709\u9700\u8981\u4f7f\u7528\u5b9e\u4f53\u5bf9\u8c61\u7684\u4f7f\u7528\u6b64\u7c7b\u6216\u4ece\u6b64\u7c7b\u7ee7\u627f\u5b50\u7c7b\n\n##### relation\n\n\u5173\u7cfb\u57fa\u7c7b, \u6240\u6709\u9700\u8981\u4f7f\u7528\u5173\u7cfb\u5bf9\u8c61\u7684\u4f7f\u7528\u6b64\u7c7b\u6216\u4ece\u6b64\u7c7b\u7ee7\u627f\u5b50\u7c7b\n\n#### util\u76ee\u5f55\n\u653e\u4e00\u4e9b\u901a\u7528\u7684\u65b9\u6cd5\n\n## todo\n\n### \u4e1a\u52a1\n\n### \u5de5\u7a0b\n\n- [ ] \u589e\u52a0\u65ad\u70b9\u91cd\u8bad\u529f\u80fd\u3002\n- [ ] \u589e\u52a0earlyStopping\u3002\n- [x] \u91cd\u6784\u9879\u76ee\u7ed3\u6784\uff0c\u5c06\u76f8\u540c\u5197\u4f59\u7684\u5730\u65b9\u5408\u5e76\u8d77\u6765\uff0c\u4fdd\u6301\u9879\u76ee\u7ed3\u6784\u6e05\u6670\n- [ ] \u73b0\u5728\u6a21\u578b\u4fdd\u5b58\u7684\u8def\u5f84\u548c\u540d\u5b57\u9ed8\u8ba4\u4e00\u81f4\uff0c\u4f1a\u51b2\u7a81\uff0c\u63a5\u4e0b\u6765\u6bcf\u4e2a\u6a21\u578b\u90fd\u6709\u81ea\u5df1\u7684`name`\u3002\n\n### \u529f\u80fd\n\n- [x] \u589e\u52a0\u5173\u7cfb\u62bd\u53d6\u76f8\u5173\u6a21\u578b\u4ee5\u53ca\u8bad\u7ec3\u9884\u6d4b\u4ee3\u7801\n- [x] \u589e\u52a0\u4e8b\u4ef6\u62bd\u53d6\u76f8\u5173\u6a21\u578b\u4ee5\u53ca\u8bad\u7ec3\u9884\u6d4b\u4ee3\u7801\n- [x] \u589e\u52a0\u547d\u540d\u5b9e\u4f53\u8bc6\u522b\u76f8\u5173\u6a21\u578b\u4ee5\u53ca\u9884\u6d4b\u8bad\u7ec3\u4ee3\u7801\n- [x] \u589e\u52a0\u57fa\u4e8e\u7ffb\u8bd1\u6a21\u578b\u7684\u77e5\u8bc6\u8868\u793a\u5b66\u4e60\u76f8\u5173\u6a21\u578b\u4ee5\u53ca\u8bad\u7ec3\u9884\u6d4b\u4ee3\u7801\n\n## \u53c2\u8003\n\n### Deep Learning\n\n- [What's the difference between \u201chidden\u201d and \u201coutput\u201d in PyTorch LSTM?](https://stackoverflow.com/questions/48302810/whats-the-difference-between-hidden-and-output-in-pytorch-lstm)\n- [What's the difference between LSTM() and LSTMCell()?](https://stackoverflow.com/questions/48187283/whats-the-difference-between-lstm-and-lstmcell)\n- [\u6df1\u5ea6\u5b66\u4e60\u6846\u67b6\u6280\u672f\u5256\u6790[\u8f6c]](https://aiuai.cn/aifarm904.html)\n\n### NLP\n\n- [\u57fa\u4e8e\u8868\u793a\u5b66\u4e60\u7684\u4fe1\u606f\u62bd\u53d6\u65b9\u6cd5\u6d45\u6790](https://www.jiqizhixin.com/articles/2016-11-15-5)\n- [\u77e5\u8bc6\u62bd\u53d6-\u5b9e\u4f53\u53ca\u5173\u7cfb\u62bd\u53d6](http://www.shuang0420.com/2018/09/15/%E7%9F%A5%E8%AF%86%E6%8A%BD%E5%8F%96-%E5%AE%9E%E4%BD%93%E5%8F%8A%E5%85%B3%E7%B3%BB%E6%8A%BD%E5%8F%96/)\n- [\u77e5\u8bc6\u62bd\u53d6-\u4e8b\u4ef6\u62bd\u53d6](http://www.shuang0420.com/2018/10/15/%E7%9F%A5%E8%AF%86%E6%8A%BD%E5%8F%96-%E4%BA%8B%E4%BB%B6%E6%8A%BD%E5%8F%96/)\n\n### \u77e5\u8bc6\u56fe\u8c31\n\n- [\u7ffb\u8bd1\u6a21\u578b(Trans\u7cfb\u5217)\u7684\u77e5\u8bc6\u8868\u793a\u5b66\u4e60](https://mp.weixin.qq.com/s/STflo3c8nyG6iHh9dEeKOQ)\n- [\u77e5\u8bc6\u56fe\u8c31\u5411\u91cf\u5316\u8868\u793a](https://zhuanlan.zhihu.com/p/30320631)\n\n### Pytorch\u6559\u7a0b\n\n- [PyTorch \u5e38\u7528\u65b9\u6cd5\u603b\u7ed34\uff1a\u5f20\u91cf\u7ef4\u5ea6\u64cd\u4f5c\uff08\u62fc\u63a5\u3001\u7ef4\u5ea6\u6269\u5c55\u3001\u538b\u7f29\u3001\u8f6c\u7f6e\u3001\u91cd\u590d\u2026\u2026\uff09](https://zhuanlan.zhihu.com/p/31495102)\n- [Pytorch\u4e2d\u7684RNN\u4e4bpack_padded_sequence()\u548cpad_packed_sequence()](https://www.cnblogs.com/sbj123456789/p/9834018.html)\n- [pytorch\u5b66\u4e60\u7b14\u8bb0\uff08\u4e8c\uff09\uff1agradient](https://blog.csdn.net/u012436149/article/details/54645162)\n- [torch.multinomial()\u7406\u89e3](https://blog.csdn.net/monchin/article/details/79787621)\n- [Pytorch \u7ec6\u8282\u8bb0\u5f55](https://www.cnblogs.com/king-lps/p/8570021.html)\n- [What does flatten_parameters() do?](https://stackoverflow.com/questions/53231571/what-does-flatten-parameters-do)\n- [\u5173\u4e8ePytorch\u7684\u4e8c\u7ef4tensor\u7684gather\u548cscatter_\u64cd\u4f5c\u7528\u6cd5\u5206\u6790](https://www.cnblogs.com/HongjianChen/p/9450987.html)\n- [Pytorch scatter_ \u7406\u89e3\u8f74\u7684\u542b\u4e49](https://blog.csdn.net/qq_16234613/article/details/79827006)\n- [\u2018model.eval()\u2019 vs \u2018with torch.no_grad()\u2019](https://discuss.pytorch.org/t/model-eval-vs-with-torch-no-grad/19615)\n- [\u5230\u5e95\u4ec0\u4e48\u662f\u751f\u6210\u5f0f\u5bf9\u6297\u7f51\u7edcGAN\uff1f](https://www.msra.cn/zh-cn/news/features/gan-20170511)\n\n### torchtext\u4ecb\u7ecd\n\n- [torchtext](https://github.com/pytorch/text)\n- [A Tutorial on Torchtext](http://anie.me/On-Torchtext/)\n- [Torchtext \u8be6\u7ec6\u4ecb\u7ecd](https://zhuanlan.zhihu.com/p/37223078)\n- [torchtext\u5165\u95e8\u6559\u7a0b\uff0c\u8f7b\u677e\u73a9\u8f6c\u6587\u672c\u6570\u636e\u5904\u7406](https://zhuanlan.zhihu.com/p/31139113)\n\n### \u5176\u4ed6\u5de5\u5177\u6a21\u5757\n\n- [python\u7684Tqdm\u6a21\u5757](https://blog.csdn.net/langb2014/article/details/54798823)\n- [pytorch-crf](https://github.com/kmkurn/pytorch-crf)\n\n### \u6570\u636e\u96c6\n\n- [Chinese-Literature-NER-RE-Dataset](https://github.com/lancopku/Chinese-Literature-NER-RE-Dataset)\n- [ChineseTextualInference](https://github.com/liuhuanyong/ChineseTextualInference)\n\n### \u8868\u793a\u5b66\u4e60\n\n- [TransE-Knowledge-Graph-Embedding](https://github.com/Lapis-Hong/TransE-Knowledge-Graph-Embedding)\n- [OpenKE-PyTorch](https://github.com/ShulinCao/OpenKE-PyTorch)\n- [\u3010\u8bed\u6599\u30112500\u4e07\u4e2d\u6587\u4e09\u5143\u7ec4\uff01](https://spaces.ac.cn/archives/4359)\n\n### \u547d\u540d\u5b9e\u4f53\u8bc6\u522b\n\n- [sequence_tagging](https://github.com/AdolHong/sequence_tagging)\n\n### \u5173\u7cfb\u62bd\u53d6\n\n- [ChineseNRE](https://github.com/buppt/ChineseNRE)\n- [pytorch-pcnn](https://github.com/ShomyLiu/pytorch-pcnn)\n- [\u5173\u7cfb\u62bd\u53d6(\u5206\u7c7b)\u603b\u7ed3](http://shomy.top/2018/02/28/relation-extraction/)\n\n### \u4e8b\u4ef6\u62bd\u53d6\n\n\u8fd9\u91cc\u6682\u65f6\u7c97\u6d45\u7684\u5c06\u8bed\u4e49\u89d2\u8272\u6807\u6ce8\u6280\u672f\u5b9e\u73b0\u7b49\u540c\u4e8e\u4e8b\u4ef6\u62bd\u53d6\u4efb\u52a1\u3002\n\n- [\u8bed\u4e49\u89d2\u8272\u6807\u6ce8](http://wiki.jikexueyuan.com/project/deep-learning/wordSence-identify.html)\n- [iobes_iob \u4e0e iob_ranges \u51fd\u6570\u501f\u9274](https://github.com/glample/tagger/blob/master/utils.py)\n- [BiRNN-SRL](https://github.com/zxplkyy/BiRNN-SRL)\n- [chinese_semantic_role_labeling](https://github.com/Nrgeup/chinese_semantic_role_labeling)\n\n### \u5176\u4ed6\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/smilelight/lightKG", "keywords": "", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "lightKG", "package_url": "https://pypi.org/project/lightKG/", "platform": "", "project_url": "https://pypi.org/project/lightKG/", "project_urls": { "Homepage": "https://github.com/smilelight/lightKG" }, "release_url": "https://pypi.org/project/lightKG/0.1.0.1/", "requires_dist": [ "torchtext (==0.4.0)", "tqdm (==4.28.1)", "torch (==1.0.0)", "pytorch-crf (==0.7.0)", "scikit-learn (==0.20.2)", "revtok", "jieba", "regex" ], "requires_python": "", "summary": "lightsmile's knowledge graph library", "version": "0.1.0.1" }, "last_serial": 5140010, "releases": { "0.0.0.0": [ { "comment_text": "", "digests": { "md5": "ba7062d86e0393b3d18eb3ae1003c74b", "sha256": "a3c5a31c976e30927390c221c46da8554d279162182abc88cbaf43a085be74a9" }, "downloads": -1, "filename": "lightKG-0.0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ba7062d86e0393b3d18eb3ae1003c74b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1431, "upload_time": "2019-02-02T12:46:35", "url": "https://files.pythonhosted.org/packages/bd/d2/fa5a1682d229759c5dae551d55e2c7ce12aed4979eb42b528ba99eca5fe3/lightKG-0.0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9309f00bb0986144e5290d6dba31fc5", "sha256": "778b3511b8c958fab2bfe7ee795d93356b0f00421d8f81334fdec37192735940" }, "downloads": -1, "filename": "lightKG-0.0.0.0.tar.gz", "has_sig": false, "md5_digest": "b9309f00bb0986144e5290d6dba31fc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1122, "upload_time": "2019-02-02T12:46:37", "url": "https://files.pythonhosted.org/packages/f8/2b/53f7f01600c7611d99b77ed65b2d5623ea7aabe9e8aacabf28afa075162e/lightKG-0.0.0.0.tar.gz" } ], "0.0.1.0": [ { "comment_text": "", "digests": { "md5": "09c9efb28246b3f2b7425b07ec12a237", "sha256": "4e34afc5a7f9de9c000109e0c9e7046d86f805662d8d1a03cf2ae7957801b968" }, "downloads": -1, "filename": "lightKG-0.0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "09c9efb28246b3f2b7425b07ec12a237", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20518, "upload_time": "2019-03-26T14:37:31", "url": "https://files.pythonhosted.org/packages/dc/35/5cb08a1ba36a70a51e660fbfc9c8fb81894a801ecaf3206a6efe22957bdc/lightKG-0.0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfb0820429c9c40d18e252843739c15f", "sha256": "6940b5b8cce0b50864d2c6f746f521d0e7c1fdf807318853d5585e1813448243" }, "downloads": -1, "filename": "lightKG-0.0.1.0.tar.gz", "has_sig": false, "md5_digest": "dfb0820429c9c40d18e252843739c15f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12848, "upload_time": "2019-03-26T14:37:33", "url": "https://files.pythonhosted.org/packages/ba/89/74a29028b3ddedd1b3ca5fc4a8271e15b76f1ddd87e496371fa10e5ec262/lightKG-0.0.1.0.tar.gz" } ], "0.1.0.0": [ { "comment_text": "", "digests": { "md5": "2bbbaa95978dc87af752f5351e1a48f2", "sha256": "9650169b9985bce775d92da57d72786812864aaa9376533d44e402dc2505884a" }, "downloads": -1, "filename": "lightKG-0.1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bbbaa95978dc87af752f5351e1a48f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34503, "upload_time": "2019-03-26T15:34:18", "url": "https://files.pythonhosted.org/packages/79/9a/91c214596b2ee1dcfeb80cd08a25aaefb1e65a1d7ee165a687f9537d8674/lightKG-0.1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75a8c12c91d645ba11c86c06e05d8bb3", "sha256": "f6adac7f7168c1e4f01f596d904e413b734381ccce70d1c0609fad42b7b89078" }, "downloads": -1, "filename": "lightKG-0.1.0.0.tar.gz", "has_sig": false, "md5_digest": "75a8c12c91d645ba11c86c06e05d8bb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18577, "upload_time": "2019-03-26T15:34:21", "url": "https://files.pythonhosted.org/packages/9e/13/bf8122601708a1b945c64b3c2ef9cb1cf050dbfa4f6a598c867f3227c108/lightKG-0.1.0.0.tar.gz" } ], "0.1.0.1": [ { "comment_text": "", "digests": { "md5": "c54a59814c6b8d8b321823afa369a395", "sha256": "81a13ede48826453997ebc4582bb06ef96e3b9eea7ddba29eca642fe3058f6ff" }, "downloads": -1, "filename": "lightKG-0.1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c54a59814c6b8d8b321823afa369a395", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38811, "upload_time": "2019-04-14T06:33:15", "url": "https://files.pythonhosted.org/packages/3e/fb/b1eb609aac52a9cfe9423036133fae381f561008738875139e051a69077a/lightKG-0.1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1db9d482da7c10b1b1d3749e216a89f3", "sha256": "fe08d3916ef974e06959d118d7d732e57b3127b8095d6fa957b7bb718427dfaa" }, "downloads": -1, "filename": "lightKG-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "1db9d482da7c10b1b1d3749e216a89f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23364, "upload_time": "2019-04-14T06:33:21", "url": "https://files.pythonhosted.org/packages/59/a8/4741d822bc9ca8b0259aa15dbf14fe79a6fee5a57045b0ca0b84f3db0bff/lightKG-0.1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c54a59814c6b8d8b321823afa369a395", "sha256": "81a13ede48826453997ebc4582bb06ef96e3b9eea7ddba29eca642fe3058f6ff" }, "downloads": -1, "filename": "lightKG-0.1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c54a59814c6b8d8b321823afa369a395", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38811, "upload_time": "2019-04-14T06:33:15", "url": "https://files.pythonhosted.org/packages/3e/fb/b1eb609aac52a9cfe9423036133fae381f561008738875139e051a69077a/lightKG-0.1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1db9d482da7c10b1b1d3749e216a89f3", "sha256": "fe08d3916ef974e06959d118d7d732e57b3127b8095d6fa957b7bb718427dfaa" }, "downloads": -1, "filename": "lightKG-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "1db9d482da7c10b1b1d3749e216a89f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23364, "upload_time": "2019-04-14T06:33:21", "url": "https://files.pythonhosted.org/packages/59/a8/4741d822bc9ca8b0259aa15dbf14fe79a6fee5a57045b0ca0b84f3db0bff/lightKG-0.1.0.1.tar.gz" } ] }