python - 如何进行句子标记化
问题描述
这是我用于 sent_tokenize 的代码
import nltk
from nltk.tokenize import sent_tokenize
sent_tokenize(comments1)
数据集
我用一个数组一个一个地获取句子,但是没有用
Arr=sent_tokenize(comments1)
Arr
Arr[0]
当我使用Arr[1]
这个错误时
IndexError
Traceback (most recent call last) <ipython-input-27-c15dd30f2746> in <module>
----> 1 Arr[1]
IndexError: list index out of range
解决方案
阅读以下评论。
# Standard sentence tokenizer.
def sent_tokenize(text, language='english'):
"""
Return a sentence-tokenized copy of *text*,
using NLTK's recommended sentence tokenizer
(currently :class:`.PunktSentenceTokenizer`
for the specified language).
:param text: text to split into sentences
:param language: the model name in the Punkt corpus
"""
tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
return tokenizer.tokenize(text)
def tokenize(self, text, realign_boundaries=True):
"""
Given a text, returns a list of the sentences in that text.
"""
return list(self.sentences_from_text(text, realign_boundaries))
由于language='english'
以!
, ?
, .
... 作为句子的结尾,因此可以添加comments1 = comments1.replace('\n', '. ')
before sent_tokenize(comments1)
。
您的案例可能被复制为nltk 句子标记器,将新行视为句子边界
推荐阅读
- compiler-construction - 第一个编译器“作者”知道 x86 机器码吗?
- .net - 样式和演示者之间的区别?
- tfs - 在线从 TFS 2010 迁移到 Azure DevOps
- javascript - 在 webview 中获得地理定位权限后 GPS 未打开?
- elasticsearch - Elastic APM 不同的索引名称
- python - 在 PyCharm 中重命名我的 django 项目后,如何修复“错误的解释器”错误?
- c++ - epoll_wait() 系统调用在从 epoll 有趣列表中取消注册套接字、关闭套接字、关闭套接字之后被无限阻塞
- r - Bookdown(证明)自定义环境:如何在自定义(例如证明)环境中嵌套代码块或内联 R 并获得正确的解析?
- firebase - 生成具有 github 操作范围的 firebase 令牌
- javascript - ScrollArea 如何滚动到底部