- 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/
Ubuntu的启动器,相当于win系统的任务栏,有的同学习惯了隐藏,因为这可以节省大量的显示空间,特别是多浏览器并列的情况下,这点空间显示很重要,但更多的是个人习惯,下面图文说一下Ubuntu的启动
在我的 Mac 上,我尝试在 Python Launcher 中默认打开一个 Python 脚本。 我左键单击脚本并选择“打开方式”,然后选择启动器。每次我执行此操作时,都会弹出Terminal,启动
我创建了一个用作启动器的应用程序。在该应用程序中,我打开了各种其他应用程序。在该应用程序中,我想清除其他应用程序的所有数据(即登录详细信息、搜索历史记录),单击按钮即可删除。 PackageManag
我用 C# 编写了一个可移植程序,它具有某些依赖项(.NET Framework、Visual C++ 可再发行版等),可以在 Windows XP SP3 及更高版本上运行。 正因为如此,该程序需要
我的目标是将我的应用程序设置为华为设备上的默认启动器。 1 - 说明: 1.1 - 当前情况: 我已经能够: 检查我的应用是否是默认启动器 显示“启动器选择器”(带有“使用一次”/“始终”选项) 这一
我正在构建一个 Android 启动器,但在尝试将已安装的应用程序添加到 GridView 时不断崩溃。 我正在尝试在 GridView 中添加已安装应用程序的网格。 我的 GridView 代码是
启动器 Activity 未启动,在 Android Studio 中按下“运行”按钮时会崩溃。虽然那里没有太多代码,但仍然如此。我已将 logcat 粘贴到其下方,将我带到 setContentVi
我最近为 LWJGL 程序创建了一个启动器,它下载 LWJGL JAR 和 native 、Slick JAR 以及该程序的主 JAR(所有这些都可以在全局变量中配置),并且我想分发它,以便其他人开发
我正在为 Android 开发主屏幕启动器应用程序。 现在,如果用户已经在主屏幕上, 当用户按下主页按钮时,我想要一个自定义操作。 我知道一些其他的启动器,可以覆盖主页按钮, 例如 Go Launch
我想使用我正在使用的普通应用程序作为启动器,因为它是唯一在设备上运行的应用程序。我必须向我的应用添加什么? 谢谢,雅尼克 最佳答案 使用这个 intent 过滤器:
假设有两个 Activity : 1. Activity A(启动器 Activity ) 2. Activity B 当从 Activity A启动 Activity B时,我完成了 Activit
我正在开发一个 Android 业务应用程序,它将托管在私有(private) channel 上。我们想使用自动更新应用程序,问题是: 这是一个 laucher(安装后设置为默认值) 有kiosk功
历史上一直存在“如何在没有主方法的情况下启动应用程序”问题,大多数问题的表述都是“你不能”。我注意到现在只需扩展 Application 即可启动 JavaFX 应用程序。我一直在使用类似于 Appl
“如何在没有 main 方法的情况下启动应用程序”问题的历史一直存在,大多数都是“你不能”这样的问题。我注意到现在如何通过扩展 Application 即可启动 JavaFX 应用程序。我一直在使用类
我想学习自定义 android 启动器,我不知道如何开始,你能给我一些建议,一些博客链接或其他示例等等。 最佳答案 最好的办法是先查看 Google 提供的示例启动器。您可以在 SDK 文件夹中找到它
我只是在制作一个演示应用程序,我需要为启动器 activity 和应用程序名称的标签设置不同的文本。 当我将启动器 Activity 标签名称设置为 Login 时,它会显示相同的应用程序名称。是否可
我正在编写 angular 2 应用程序并尝试使用 phantomJS 启动器在 Gitlab CI 上设置测试。在所有测试通过后,确定 phantomJS 启动器将永远保持事件状态(http://i
如果您要安装的主屏幕应用程序不允许您访问系统设置屏幕(转到管理应用程序),也不允许您启动应用程序(例如市场应用程序或第 3 方安装/unistallers),有没有办法卸载这样的应用程序? 我知道 A
我遇到了这个问题。我创建了一个新的 xml 布局(启动画面)并在 list 中将其设置为 Launcher 类别。我之前做过很多次,但以前从未发生过。 当 MainActivity 是 LAUNCHE
我想在我的 JupyterLab Launcher 中添加一些自定义内容。这是新用户看到的第一个页面,我想告诉他们这个环境的细节和内容的链接。有点像这样: Launcher's code很简单,我可以
我是一名优秀的程序员,十分优秀!