c++ - 从段落中提取句子

标签 c++ data-structures text-segmentation

使用 strtok 可以单独获取 para 中的每个标记。

我想单独捕获页面中的所有句子,以便单独处理它们。

一个解决方案是我保持 for 循环并检查每个字符,如果它是 . 那么我认为句子已完成,因此存储在一些数据结构中。 我不知道哪种数据结构最适合存储这个。数组还是 vector ?

是否有任何其他更好的方法或一些 c++ 类可用于执行此操作?

更新

稍后我想对句子中的否定进行操作。表示考虑notnonope这样的关键词。如果 not + negative word 然后将其作为 +ve word.

最佳答案

由于您使用的是 C++,因此存储字符串的最佳数据结构是 std::string 类(class)。将多个字符串存储在 std::vector<std::string> 中.顺便说一下,不要使用 strtok , 使用 std::getline 相反。

但是当你在进行文本操作,也许是国际文本操作时,你应该看看 ICU图书馆。在这种情况下 icu::BreakIterator::createSentenceInstance 特别是。

关于c++ - 从段落中提取句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309569/

相关文章:

C++ Char - 关系运算符

java - 关于取模运算符的使用

javascript - 将 HTML 内容拆分成句子,但保持子标签完整

python - 将 HTML 解析为句子 - 如何处理表格/列表/标题/等?

c++ - 为什么在存在隐式转换时赋值速度变慢?

c++ - OpenGL:如何缩放并将其位置(X,Y)保持在之前的位置

C++编译失败,错误: no member named 'snprintf' in namespace 'std'

algorithm - 快速过滤的数据结构(Delphi)?

java - 有人可以检查我的获取数组模式的算法,而决胜局根本没有模式吗?

regex - 按句子中的最后一个单词拆分列