gpt4 book ai didi

spacy - 有没有一种快速的方法来获取 spaCy 中每个句子的标记?

转载 作者:行者123 更新时间:2023-12-04 11:59:32 29 4
gpt4 key购买 nike

要将我的句子拆分为标记,我正在执行以下操作,这很慢

 import spacy nlp = spacy.load("en_core_web_lg")

text = "This is a test. This is another test"

sentence_tokens = []
doc = nlp(text)
for sent in doc.sents:
words = nlp(sent.text)
all = []
for w in words:
all.append(w)
sentence_tokens.append(all)

我有点想像 nltk 处理它那样使用 sent_tokenize() 将文本拆分成句子。然后为每个句子运行 word_tokenize()

最佳答案

您的方法的主要问题是您正在处理所有内容两次。 doc.sents中的一句话是 Span 对象,即 Token 的序列s。所以没有必要打电话nlp再次在句子文本上 - spaCy 已经在幕后为您完成了所有这些工作,并且 Doc你得到的信息已经包含了你需要的所有信息。

因此,如果您需要一个字符串列表,每个标记一个,您可以执行以下操作:

sentence_tokens = []
for sent in doc.sents:
sentence_tokens.append([token.text for token in sent])

或者更短:

sentence_tokens = [[token.text for token in sent] for sent in doc.sents]

如果您正在处理大量文本,您可能还想使用 nlp.pipe以使其更有效率。这将批量处理文本并产生 Doc对象。您可以阅读更多相关信息 here .

texts = ["Some text", "Lots and lots of texts"]
for doc in nlp.pipe(texts):
sentence_tokens = [[token.text for token in sent] for sent in doc.sents]
# do something with the tokens

关于spacy - 有没有一种快速的方法来获取 spaCy 中每个句子的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57678190/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com