python 语义依存分析_美食图谱复现指南之依存句法分析

本文介绍了如何使用Python的pyltp库进行分词、词性标注和依存句法分析,以从文本中抽取出饮食相关的信息。通过示例,展示了如何判断饮食行为并提取食物名称,同时指出代码在处理复杂表达时的不足,并提供了代码开源链接。
摘要由CSDN通过智能技术生成

9f7d4df06945b0f5aeb71e73444fea74.png

本文代码开源在:[DesertsX/gulius-projects](DesertsX/gulius-projects)

哈工大语言云的官网有一篇名为《使用语言云分析微博用户饮食习惯》的文章,里面讲到了借助分词、词性标注和依存句法分析等NLP技术,可以从微博文本内容中提取出用户饮食习惯等数据。

进而可以结合用户性别、地区、发微博时间等不同维度信息,展现出许多有趣的结果,比如下图分别是上海、重庆、以及广东(男性)的特色饮食习惯:

7016d817808100b8108ed17d954209b2.png

那么如何抽取出上述食物呢?原文给出了由三个条件组成的规则:一条微博里含有词语“吃”+与“吃”相关的句法关系为VOB(动宾关系)+“吃”的宾语为名词,就可以判断发生饮食行为,进而提取出“吃”的宾语就是相关的食物。

作为解释,给出了三个例句:“我刚吃了一块巧克力”、“今天我去电影院看了浓情巧克力”、“我吃了个巧克力味冰淇淋”。

b1560269bf0e876b4f23173a7e7f2686.png

句子经过分词,并在下方标注了词性,依存弧表明每个词语之间的关系,比如主谓关系(SBV)、动宾关系(VOB)等等。

由上述规则可以判断出第二句没有饮食行为,于是进行过滤;而从另外两句中可以分别抽取出“巧克力”和“冰淇淋”(当然第三

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python依存句法分析可以使用多个自然语言处理工具进行实现,以下是其中的几个常用工具和方法: 1. Stanford CoreNLP Stanford CoreNLP是一个流行的Java自然语言处理工具包,可以用于依存句法分析、命名实体识别、句子分割等任务。Python可以通过pycorenlp包与Stanford CoreNLP进行交互,使用方法如下: ```python from pycorenlp import StanfordCoreNLP nlp = StanfordCoreNLP('http://localhost:9000') text = 'John is eating a pizza' output = nlp.annotate(text, properties={ 'annotators': 'depparse', 'outputFormat': 'json' }) print(output['sentences'][0]['enhancedPlusPlusDependencies']) ``` 2. spaCy spaCy是一个流行的Python自然语言处理库,其依存句法分析器可以通过调用nlp对象的`parse`方法进行实现,使用方法如下: ```python import spacy nlp = spacy.load('en_core_web_sm') text = 'John is eating a pizza' doc = nlp(text) for token in doc: print(token.text, token.dep_, token.head.text, token.head.pos_, [child for child in token.children]) ``` 3. nltk nltk是Python中自然语言处理的老牌库,其也提供了依存句法分析的功能,可以通过`nltk.parse.dependencygraph.DependencyGraph`类进行实现,使用方法如下: ```python import nltk text = 'John is eating a pizza' tokens = nltk.word_tokenize(text) pos_tags = nltk.pos_tag(tokens) dependency_parser = nltk.parse.corenlp.CoreNLPDependencyParser() parse_result = dependency_parser.raw_parse(text) dependency_graph = parse_result.__next__() for node in dependency_graph.nodes.values(): print(node['word'], node['tag'], node['head'], node['rel']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值