java - 如何拆分句子?

标签 java parsing stanford-nlp

因此,我发现并正在使用 Stanford Parser,它非常适合拆分句子。我们的大部分句子都来自 AP,因此它非常适合该任务。

问题如下:

  • 它占用大量内存(600M 很多)
  • 它确实搞砸了一段文本的格式,我不得不为以后制作很多边缘案例。 (文档预处理器 API 调用不允许指定 ascii/utf8 引号——它们会立即转到 latex 样式,缩略词被拆分成不同的词(很明显)并且虚假空格被放在不同的地方)

为此,我已经编写了多个补丁来补偿我不应该做的事情。

基本上,它与开始时的拆分句子问题一样成为使用障碍。

我还有哪些其他选择?还有其他 NLP 类型的框架可以提供帮助吗?

我最初的问题只是能够以高概率检测句子边缘。

最佳答案

如果您想坚持使用 Stanford Tokenizer/Parser,请查看 documentation page for the tokenizer .

如果您只想拆分句子,则不需要调用正确的解析器,因此您应该能够通过直接使用 DocumentPreprocessor 来节省少量内存 - 一两兆字节。

虽然只有有限的分词器自定义可用,但您可以更改报价的处理。您可能想尝试以下方法之一:

unicodeQuotes=false,latexQuotes=false,asciiQuotes=false
unicodeQuotes=true

第一个意味着没有任何类型的引号映射,第二个将根据其最大能力将单引号或双引号(如果有)更改为左引号和右引号。

虽然分词器以各种方式拆分单词以匹配 Penn Treebank 约定,但您应该能够从返回的分词中精确地构建原始文本(请参阅 CoreLabel 中的各种其他字段)。否则就是一个错误。

关于java - 如何拆分句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506945/

相关文章:

ios - 在 iOS 中解析 json 并将值添加到对象数组

java - 斯坦福 pos 标记器中的 xml 格式

java - 如何创建具有多个(可互换)行为的类

PHP IMAP 如何只获取正文的文本部分?不是不同的 <html> 标签等

java - Selenium 网络驱动程序 : Need solution for a very specific issue pertaining to @BeforeTest (TestNG)

php - GD及解析网充电时间

nlp - 标记文本文档 - 监督机器学习

python - 使用 NLTK 简化法语 POS 标签集

java - 数据报套接字上的 setSotimeout

java - "cannot find symbol"试图关闭 I/O 对象时