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

埃罗塔夫拉斯

要将句子拆分成记号,我正在执行以下操作,其中i很慢

 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()

伊尼斯·蒙塔尼(Ines Montani)

您的方法的主要问题是您要处理两次中的句子doc.sents是一个Span宾语,即Tokens的序列因此,无需再次调用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对象。您可以在此处了解更多信息

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 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种通用的方法来获取Java中两个列表的交集?

有没有一种可移植的方法来获取Python中的当前用户名?

有没有一种快速的方法来在Python中生成字母的字典?

有没有一种快速的方法来获取字符串中的最后两个字符?

有没有一种简单的方法来获取Java对象的大小?

有没有一种快速的方法来识别String或TextView中的HTML ASCII代码?

有没有一种快速的方法来遍历和删除Pandas数据框中的特定行?

有没有一种简单的方法来获取Java中的多个随机值?

有没有一种快速的方法来对TFS中即将发生的更改进行锁定检查?

有没有一种简单的方法来获取Django Queryset中的双层related_name实例?

有没有一种快速的方法来随机播放段中的numpy图像?

有没有一种快速的方法来获取所有打开请求请求的评论计数

有没有一种快速的方法来删除glibc中的malloc / free / memalign / realloc挂钩?

有没有一种标准的方法来获取C ++中的第n个“ nextafter”浮点值

有没有一种方法来获取对象中属性值的数组?

有没有一种快速的方法来获取放置在数组中的最后一个元素?

有没有一种快速的方法来获取列表中的所有邻居元素?

有没有一种快速的方法来清除工作表中的大量数据?

有没有一种方法来获取特定列上的日期差

有没有一种快速的方法来从VBA中的Range获取列字母?

有没有一种简单的方法来获取GtkWidgetPath的文本表示形式?

有没有一种快速而肮脏的方法来截断水线集合?

有没有一种方法来获取多个列表python的索引?

有没有一种方法来获取函数参数的类型?

有没有一种快速的方法来从Finder获取文件的完整路径?

有没有一种快速的方法来绘制Scilab中的多个图

有没有一种快速的方法来获取数组中的整个布尔值?

有没有一种简短的方法来检查 R 中每个变量的不等价性?

有没有一种快速的方法来替换 R 中的列值?