Python与Java进行自然语言处理 - java

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。

已关闭8年。

我一直在研究Java,以查找两个文档之间的相似性。我更喜欢找到语义上的相似性,但还没有努力进行查找。我正在使用以下方法。

  • 提取术语/标记(我正在将JAWS与wordnet一起使用以删除同义词,从而提高了相似性)
  • 创建术语文档矩阵
  • LSA

  • 余弦相似度
  • 当我查看几个stackoverflow页面时,我获得了很多python实现的链接。

    我想知道python是否是一种更好的语言来查找文本相似性,也想知道我是否可以在python中的两个文档之间找到语义相似性

    参考方案

    假设您没有平台限制会限制您对语言的选择,那么您应该根据自己最喜欢的语言(我更喜欢Python)选择语言,并且该语言具有适合您的应用程序的最佳库(如@ GregHewgill指出Python工具(Natural Language Toolkit)已经成熟并且功能全面。

    因此,尽管我个人会选择Python,但这实际上是您必须自己选择的东西。

    ==编辑==

    关于Java NLP库的question可能会帮助您确定是否可以使用Java进行分析。最上面的答案有一个您可以调查的列表。没有有关您的问题集的更多信息,我将无法提供更具体的建议。

    Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

    Java:找到特定字符并获取子字符串 - java

    我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…

    Java:线程池如何将线程映射到可运行对象 - java

    试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

    Java:我可以在Hashmaps中使用数组吗? - java

    我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map<String,String[]> map = new HashMap<String,String[]>();

    JAVA:字节码和二进制有什么区别? - java

    java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…