【问题标题】:C++ if end of string has "ed" or "ing" [closed]如果字符串结尾有“ed”或“ing”,则 C++ [关闭]
【发布时间】:2016-11-15 00:46:02
【问题描述】:

在自然语言处理器上工作,我一直在苦苦挣扎。我一直在想办法,看看一个已经被解析的单词是否以“ed”或“ing”结尾,这样我就可以决定一个动词的上下文。

我怎样才能做到这一点?

【问题讨论】:

  • 离题:您误用了逗号。在主题上,这比看起来更棘手。例如“带来”这个词。
  • 考虑使用具有更多内置字符串函数的编程语言。 Grep 支持也会让事情变得更容易,但如果过度使用会导致运行速度变慢。

标签: c++ nlp


【解决方案1】:

您可以使用std::string::compare 来检查特定后缀是否存在:

bool ends_with(std::string const &str, std::string const& suffix){
    return str.size() >= suffix.size() &&
           str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
}

ends_with(str,"ed");
ends_with(str,"ing");

或者,您可以使用增强算法:

boost::algorithm::ends_with(str,"ed");
boost::algorithm::ends_with(str,"ing");

自然语言处理比检查这些后缀更复杂,
但这可以是一个开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 2017-10-08
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多