NLP 中的否定处理

2024-03-23

我目前正在开发一个项目,我想从文本中提取情感。由于我使用的是conceptnet5(一种语义网络),因此我不能简单地在包含否定词的句子中添加单词前缀,因为这些单词根本不会出现在conceptnet5 的API 中。

这是一个例子:

这部电影不太好。

因此,我认为我可以使用 wordnet 的引理功能来替换包含否定词(例如(not,...))的句子中的形容词。

在前面的示例中,算法将检测wasn't并将其替换为was not。 此外,它会检测否定词not,并替换good与它的反义词bad。 该句子如下:

这部电影太糟糕了。

虽然我发现这不是最优雅的方式,而且在很多情况下它可能会产生错误的结果,但我仍然想以这种方式处理否定,因为坦率地说,我不知道有什么更好的方法。

考虑到我的问题:不幸的是,我没有找到任何库可以让我替换所有出现的附加否定词(wasn't => was not)。 我的意思是我可以通过用正则表达式替换出现的事件来手动完成此操作,但那样我就会陷入英语语言的困境。

因此我想问你们中的一些人是否知道一个库、函数或更好的方法这可以帮助我。 目前我正在使用 pythonnltk,仍然似乎它不包含这样的功能,但我可能是错的。

提前致谢 :)


类似的情况wasn't可以通过标记化简单地解析(tokens = nltk.word_tokenize(sentence)): wasn't会变成was and n't.

但否定意义也可以由“准否定词,如几乎、勉强、很少”和“隐含否定词,如失败、阻止、不情愿、否认、缺席”形成,看看这张纸 http://www.academypublication.com/issues/past/tpls/vol03/07/17.pdf。更详细的分析可以在 Christopher Potts 的文章中找到。论否定的否定性 https://web.stanford.edu/~cgpotts/papers/potts-salt20-negation.pdf.

考虑到您最初的问题,据我所知,情感分析、大多数现代方法都不会明确处理否定;相反,他们使用高阶 n 元语法的监督方法。那些实际处理否定的人通常会在否定和标点符号之间的所有单词后面附加特殊的前缀 NOT_。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLP 中的否定处理 的相关文章

随机推荐

  • 如何修复 flutter 上的“simple_permissions”错误?

    当我在 flutter 项目上运行包含 simple permissions 的代码时出现错误 Initializing gradle Resolving dependencies Running Gradle task assembleD
  • 散景中的多线悬停

    正如在这个问题中 多线散景和 HoverTool https stackoverflow com questions 32975709 bokeh multi line and hovertool 我发现悬停工具没有针对多线图实现 这是一个
  • 从 UIWebView 创建 PDF 文件

    void createPDFfromUIView UIView aView saveToDocumentsWithFileName NSString aFilename Creates a mutable data object for u
  • 有没有办法在 Objective-C 中使用 Swift 结构而不将它们作为类?

    我有几个简单的structs在 swift 文件中用 swift 编写 这些structs非常简单 几乎只包含字符串 struct Letter struct A static let aSome String descASome stat
  • 汇总数据框忽略重复

    我有一个数据框 其中一列中有重复的条目 我想根据该专栏总结其他专栏 我希望摘要在进行摘要时考虑每个唯一条目而不是总数 例如 在下面的数据框示例中 如果我想回答以下问题受访者中有多少人是年轻人 中年人和老年人 RefID 1 1 在总结 ag
  • 如何解决错误:预期标识符或“(”

    我正在编程的东西有问题 我一遍又一遍地收到这个错误 jharvard appliance Dropbox pset1 make mario clang ggdb3 O0 std c99 Wall Werror mario c lcs50 l
  • (obj == null) vs (null == obj)?

    我的老板说我应该使用null obj 因为它比obj null 但他不记得为什么要这样做 有什么理由使用null obj 我以某种方式感觉到了 相反 经过谷歌搜索后 我唯一发现的是 在 C 中 它可以防止您意外地在条件结构中键入 obj n
  • iPhone文档文件夹库/缓存安全问题

    我开发了一款iOS应用程序 出于安全原因 我将所有音频 视频文件下载到下的 Documents 文件夹中库 缓存 对于使用 iTunes 最终用户无法备份此视频 但有些外部软件很容易打开库 缓存并从此文件夹下载所有文件 我的问题是如何保护此
  • 如何在IntelliJ 2021.2.2中使用Lombok插件?

    我是从 C 开始接触 Java 的 我一直在努力熟悉这门语言 我正在尝试使用 IntelliJ IDEA 的 lombok 插件 但它似乎根本不适合我 这是我的IDEA无法识别 value 注释的屏幕截图 https i stack img
  • 您能否将多个不同的值类型分配给重复的 Protobuf 消息中的一个字段?

    我正在尝试对客户端进行逆向工程 该客户端将音频文件上传到服务器 然后在单独的请求中上传文件的元数据 元数据在 Protobuf 中序列化 并且使用相当简单且可读的结构 这是之后的样子protoc decode raw 1 1 title 2
  • 对 Django 模板中的相关项目进行排序

    是否可以对 DJango 模板中的一组相关项目进行排序 即 这段代码 为了清楚起见 省略了 HTML 标签 for event in eventsCollection event location for attendee in event
  • laravel 一个帐户下有多个电子邮件地址

    我的 Laravel 应用程序要求用户可以拥有多个可用于登录的电子邮件地址 我的问题是 如何允许用户在一个帐户下拥有多个电子邮件地址 我必须记住 每封电子邮件只能由一个用户使用 我的想法是为电子邮件创建一个单独的表 其中包含用户 ID 我仍
  • delphi 7 中的 utf8 解码

    我需要使用 delphi 7 将字符串从 utf8 转换为宽字符串 谁能告诉我为什么下面的代码在delphi 7中不起作用 Utf8Decode 函数的参数只是一个示例 var ws WideString begin ws Utf8Deco
  • C# 如何杀死阻塞的线程?

    我有一个线程 void threadCode object o doStuffHere o Blocking call Sometimes hangs 我这样称呼它 Thread t new Thread new ThreadStart d
  • 如何在 Keras 中定义自定义精度以忽略具有特定金色标签的样本?

    我想在 Keras 中编写一个自定义指标 我正在使用张量流后端 相当于categorical accuracy 但是具有特定金色标签的样本的输出 在我的例子中是 0 来自 y true 必须被忽略 例如 如果我的输出是 预测 1 金 0 预
  • 如何验证 angular2 中的 FormArray 长度

    我有一个 angular2 数据驱动形式 如下所示 this formBuilder group name Validators required description Validators required places this fo
  • android: 需要为元素 显式指定导出

    我在 AndroidManifest xml 中遇到 Flutter 构建错误 android exported 需要为元素 显式指定 面向 Android 12 及更高版本的应用需要指定 显式值android exported当相应的组件
  • 直接调用分配给对象属性的闭包

    我希望能够直接调用分配给对象属性的闭包 而无需将闭包重新分配给变量然后调用它 这可能吗 下面的代码不起作用并导致Fatal error Call to undefined method stdClass callback obj new s
  • Ruby 中的“sys.stdout.write()”等价物是什么?

    正如 Python 中所见 什么是sys stdout write Ruby 中的等价物 在 Ruby 中 您可以使用以下方式访问标准输出 stdout or STDOUT 所以你可以使用write http ruby doc org co
  • NLP 中的否定处理

    我目前正在开发一个项目 我想从文本中提取情感 由于我使用的是conceptnet5 一种语义网络 因此我不能简单地在包含否定词的句子中添加单词前缀 因为这些单词根本不会出现在conceptnet5 的API 中 这是一个例子 这部电影不太好