首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用textacy提取引号

使用textacy提取引号
EN

Stack Overflow用户
提问于 2022-06-16 08:49:41
回答 1查看 122关注 0票数 0

我试图从文本中提取引语和引语属性(即说话者),但我有错误。下面是设置:

代码语言:javascript
复制
import textacy
import pandas as pd
import spacy

data = [
        ("\"Hello, nice to meet you,\" said world 1"),
        ("\"Hello, nice to meet you,\" said world 2"),  
        ]

df = pd.DataFrame(data, columns=['text'])

nlp = spacy.load('en_core_web_sm')

doc = df['text'].apply(nlp)

以下是所需的输出:

[DQTriple(speaker=world 1,cue=said,content=,你好,很高兴见到你,")] [DQTriple(speaker=world 2,cue=said,content=“你好,很高兴认识你,”)

以下是提取的第一次尝试:

代码语言:javascript
复制
print(list(textacy.extract.triples.direct_quotations(doc) for records in doc))

它提供了以下输出:

<生成器对象direct_quotations在0x7f82edf58ac0>,<生成器对象direct_quotations在0x7f82edf58190>

以下是提取的第二次尝试:

代码语言:javascript
复制
print(list(textacy.extract.triples.direct_quotations(doc)))

这将产生以下错误:

AttributeError:“串联”对象没有属性“lang_”

EN

回答 1

Stack Overflow用户

发布于 2022-06-17 09:32:42

在第一次尝试中,您是通过遍历令牌来提取引号的。

下面是你可以做的事情的一个例子:

代码语言:javascript
复制
import textacy

import spacy

text =""" "Hello, nice to meet you," said world 1"""

nlp = spacy.load("en_core_web_sm")

doc = nlp(text)

print(list(textacy.extract.triples.direct_quotations(doc)))
# will print: [DQTriple(speaker=[world], cue=[said], content="Hello, nice to meet you,")]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72643007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档