- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用来自 nltk 的 PunktSentenceTokenizer
将文本拆分为句子。文本包含以项目符号开头的列表,但它们不会被识别为新句子。我试图添加一些参数,但没有用。还有别的办法吗?
下面是一些示例代码:
from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
params = PunktParameters()
params.sent_starters = set(['•'])
tokenizer = PunktSentenceTokenizer(params)
tokenizer.tokenize('• I am a sentence • I am another sentence')
['• I am a sentence • I am another sentence']
最佳答案
您可以继承 PunktLanguageVars
并调整 sent_end_chars
属性以满足您的需求,如下所示:
from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktLanguageVars
class BulletPointLangVars(PunktLanguageVars):
sent_end_chars = ('.', '?', '!', '•')
tokenizer = PunktSentenceTokenizer(lang_vars = BulletPointLangVars())
tokenizer.tokenize(u"• I am a sentence • I am another sentence")
这将导致以下输出:
['•', 'I am a sentence •', 'I am another sentence']
但是,这使 • 成为一个句子结束标记,而在您的情况下它更像是一个句子开始标记。因此这个示例文本:
I introduce a list of sentences.
- I am sentence one
- I am sentence two
And I am one, too!
根据您的文本的详细信息,会产生如下内容:
>>> tokenizer.tokenize("""
Look at these sentences:
• I am sentence one
• I am sentence two
But I am one, too!
""")
['\nLook at these sentences:\n\n•', 'I am sentence one\n•', 'I am sentence two\n\nBut I am one, too!\n']
PunktSentenceTokenizer
用于句子标记化而不是简单地使用诸如多分隔符拆分函数之类的东西的一个原因是,因为它能够学习如何区分用于句子的标点符号和使用的标点符号用于其他目的,例如“先生”。
但是,对于 • 应该没有这样的复杂性,所以我建议您编写一个简单的解析器来预处理项目符号格式,而不是滥用 PunktSentenceTokenizer
来处理它不是真正设计的东西为了。如何实现这一点取决于文本中这种标记的具体使用方式。
关于python - NLTK Sentence Tokenizer,自定义句子启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29746635/
因此,我将在数据库中存储数百万个句子,每个句子都有一个作者。我需要能够有效地搜索句子并返回作者。现在,我希望能够拼错一个词或忘记这句话中的一两个词,并且应用程序仍然能够匹配(模糊式)。谁能指出我正确的
我知道有 Edit > Change Case菜单。但是对于句子大小写没有选择。 我如何实现这一目标?正则表达式可以做到这一点吗? 最佳答案 你可以用这个正则表达式 : 查找 (^|\.\s|…\s)
我是 Ruby 新手。这是一个使用任何语言的编程面试问题。我正在尝试用 Ruby 来做。 编写一个程序来输入给定的句子。用单词的第一个字母/#ofcharactersbetween1st&laSTLe
我有一个关于在 GATE 中使用 ANNIE 插件的 Gate API 的问题。我在 java 程序中使用了 GATE api,它适用于 50 多个文档。但是当我为超过 50 个文档运行它时,它给出了
我有一个程序要求输入一个句子,然后要求输入一个词,并告诉你那个词的位置: sentence = input("enter sentence: ").lower() askedword = input(
题目地址:https://leetcode-cn.com/problems/sentence-similarity/ 题目描述 Given two sentences words1, words2
用例 准备一个正则表达式,可以匹配'sell|sold|selling'之后的1个或2个词,并匹配变量“product” 示例 Sentence - "John wants to sell 200$
我正在尝试对一列句子执行 StringIndexer 操作,即将单词列表转换为整数列表。 例如: 输入数据集: (1, ["I", "like", "Spark"]) (2, ["I", "h
背景 希望在 JasperServer 中自动创建域。域是用于创建临时报告的数据“ View ”。列的名称必须以人类可读的方式呈现给用户。 问题 从理论上讲,组织可能希望将超过 2,000 条数据包含
我正在为我的 Sentence Splitter 应用程序寻找一个测试文件,我希望该文件能够涵盖尽可能多的案例。 谢谢! 最佳答案 阅读 Lingua::Sentence 的文档.它命名了它使用的语料
我正在尝试创建一个程序,从电视直播网站获取 html,然后使用 split 函数将所有 html 数据拆分为 channel 名称和表中当前正在播放的节目,例如如:BBC 1 -“节目名称”。我只需要
这个问题在这里已经有了答案: Combining two sed commands (2 个答案) 关闭 1 年前。 我做了这个脚本: xrandr | grep '*' | sed 's/\S*\
如何使用 GO 编程语言找到给定句子的首字母缩写词。例如,“你好,世界!”变成“HW”。到目前为止,我已经尝试拆分句子: package main import ( "bufio" "
工厂定义: public function definition() { return [ 'user_id' => function() { retu
我在 HPC 上工作,工作节点上没有互联网访问权限,训练后保存 SetFit 训练器的唯一选择是将其推送到 HuggingFace hub。如何将其保存到本地磁盘? https://github.co
当我对以下文件运行 parser.y 时,出现以下错误: myanalyzer.y: warning: 14 nonterminals useless in grammar myanalyzer.y:
我在 HPC 上工作,工作节点上没有互联网访问权限,训练后保存 SetFit 训练器的唯一选择是将其推送到 HuggingFace hub。如何将其保存到本地磁盘? https://github.co
所以我刚刚在 Shinyapps 上部署了我的电影推荐,但我仍然想改变一件事。请看下面的图片。 因为我不想把“你可能也喜欢这个”放在另一个框中,我真的不知道如何在 html/css 格式中调整它。对我
我用 python 创建了一个程序,它基本上告诉用户输入一个单词,并告诉他们它是否是回文。 我的程序: def palindrome(word): return word == word[::
我需要删除第一个字符(不是空格)之前的所有空格,并删除最后一个字符(不是空格)之后的所有空格。 看起来像这样: ' a boat has an anchor
我是一名优秀的程序员,十分优秀!