问题标签 [mecab]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2590 浏览

ruby - 使用 Natto gem (Mecab) 将日文汉字转换为假名

0 投票
0 回答
537 浏览

r - RMeCab 日文文本编码(R 用户)

我从网上抓取了日语内容进行内容分析。现在我正在准备文本数据,从创建术语文档矩阵开始。我用来清理和解析东西的包是“RMeCab”。有人告诉我,这个包要求文本数据采用 ANSI 编码。但是我的数据是 UTF-8 编码的,RMeCab 的设置和 R 本身的全局设置也是如此。

是否有必要更改文本文件的编码才能运行 RMeCab?那么,如何快速转换上万个单独文本文件的编码呢?

我尝试了编码转换网站,这给了我一些乱码作为 ANSI 输出。我不明白在 RMeCab 中输入看起来像一堆问号的东西背后的机制。如果我成功地将编码转换为 ANSI,并且我的文本数据看起来像一堆符号,那么 RMeCab 是否仍然能够将其读取为日文文本?

0 投票
1 回答
294 浏览

nlp - Mecab 输出 - 名称类型列表

0 投票
0 回答
787 浏览

python - 在 github 包中找不到配置文件

我正在尝试从 Git 存储库https://github.com/mcho421/noj/blob/master/installing-mecab-python.md安装一个名为 Mecab 的日语标记器及其 Python 包

下载 mecab 本身可以正常工作,但是当您点击下载 mecab-python 部分时,我遇到了一个我无法解决的错误。

在尝试设置 Python(在 Linux 虚拟机上)时,我在运行设置命令后立即遇到错误“sh: 1: mecab-config: not found”:

这是收到的完整错误消息:

我将非常感谢有关如何完成安装的任何见解或信息,以便我可以使用 python 运行这个标记器。

非常感谢您的任何帮助。

耀西

0 投票
0 回答
505 浏览

transliteration - 可以配置/增强 MeCab 以让我也阅读英文单词吗?

如果我从一个完全日语的句子开始并通过 MeCab 运行它,我会得到如下内容:

如果我将最后一列中的所有内容组合在一起,我会得到“ワガハイワネコデアル”,然后我可以将其输入语音合成程序并获得输出。然而,所述程序不处理英文单词。

我把英语扔进 MeCab,它设法对其进行标记(可能在空格处很天真),但没有给出读数:

我也想得到这些的读数,即使它们并不完美,这样我就能得到类似“アイアムアキャット”的东西。

我已经在网上搜索了解决方案,虽然我确实找到了一堆似乎足够音译的网站,但我无法在我自己的代码中找到任何方法。在某些情况下,我向网站作者发送了电子邮件,但在等待几周后仍未收到回复。(这些人的收件箱落后多少?)

我可以去很多方向,但到目前为止我都遇到了死胡同,所以这是我的复合问题:

  • MeCab 采用自定义词典。是否有一个自定义词典可以在一定程度上补充英语知识?
  • 有没有其他的图书馆或工具可以带英语并吐出片假名?
  • 是否有一些图书馆或工具可以使用 IPA(国际音标)并吐出片假名?(我知道如何从英语到国际音标。)

顺便说一句,我发现“VOICEROID”软件可以说英文文本(很差,但足以满足我的目的)。该软件也使用 MeCab(或者至少它的 DLL 和字典文件包含在安装中。)它还使用另一个库,Cabocha,据我所知,运行它与 MeCab 完全相同。它可以使用这两个库中的任何一个的自定义词典来完成这项工作,或者执行它的代码可能在他们正在使用的专有 AITalk 库中。需要更多的研究,我还没有弄清楚如何针对他们的字典运行这两种工具来直接测试它。

0 投票
1 回答
391 浏览

c++ - 将旧的 Mecab 库实现到现代 iOS 应用程序中

我正在尝试在我一直在开发的新应用程序中使用 Mecab,但我无法让库正常工作。最初,我尝试了以下应该与 iOS 6 兼容的存储库:

https://github.com/gumob/mecab

我尝试构建一个通用二进制文件,然后添加库和头文件,以及简单地将整个项目添加为依赖项,但在这两种情况下,我都遇到了很多错误。所以,我放弃了那个,回到原来的分支:

https://github.com/FLCLjp/iPhone-libmecab

我相信它最初是为 iOS 3 制作的。但是,如果您对该存储库中包含的示例应用程序进行以下更改,该应用程序将在 iOS 9.3 模拟器和设备上构建和运行:

将应用程序委托中的第 26 行从

对于 LibMecabSample 目标和在 Other Sources 文件夹中的 mecab.xcodeproj 中找到的 mecab 库目标,将 Build Settings - Architectures 选项更改为 Standard architectures (armv7 arm64)。

由于这个版本似乎工作得很好,我尝试将在该存储库中找到的 mecab.xcodeproj 实现到我的应用程序中。我基本上试图重新创建它在 LibMecabSample 应用程序中实现的方式,一切似乎都是一样的。我什至在一个文本程序中区分了 xcode 项目文件,以确保我在构建设置中没有任何差异。存在一些差异(ARC、启用模块和用户定义的 PREBINDING - 无设置),但更改这些似乎不会影响事情,当我尝试构建时仍然出现以下错误:

我不确定这是否只是链接器问题,或者可能与 C 编译器有关,但我已经修补了几天,但似乎无法弄清楚。如果有人可以提供小费,我将不胜感激。

0 投票
3 回答
1705 浏览

python - 子进程,在从 STDOUT 读取时重复写入 STDIN(Windows)

我想从 python 调用一个外部进程。我正在调用的进程读取输入字符串并给出标记化结果,然后等待另一个输入(如果有帮助,二进制是 MeCab 标记器)。

我需要通过调用这个过程来标记数千行字符串。

问题是Popen.communicate()工作,但在给出 STDOUT 结果之前等待进程终止。我不想继续关闭和打开新的子流程数千次。(而且我不想发送整个文本,将来它可能很容易增长到数万行。)

我尝试阅读proc.stdout.read()而不是使用通信,但它被阻止并且在调用stdin之前不返回任何结果。proc.stdin.close()这又意味着我每次都需要创建一个新流程。

我尝试从下面类似的问题中实现队列和线程,但是它要么不返回任何内容,因此卡在上面While True,要么当我通过重复发送字符串来强制 stdin 缓冲区填充时,它会立即输出所有结果。

还查看了 Pexpect 路由,但它的 windows 端口不支持一些重要的模块(基于 pty 的模块),所以我也不能应用它。

我知道有很多类似的答案,我已经尝试了其中的大部分。但是我尝试过的任何东西似乎都无法在 Windows 上运行。

编辑:当我通过命令行使用它时,我正在使用的二进制文件的一些信息。它运行并标记我给出的句子,直到我完成并强行关闭程序。

(...waits_for_input -> input_recieved -> 输出 -> waits_for_input...)

谢谢。

0 投票
1 回答
2785 浏览

python - Ctypes,调用外部windll函数

我想在 Windows 上使用 Python3 从外部 dll 调用一些函数。我要使用的库和功能如下;

我需要先调用mecab_new2,从它的返回中获取指针并使用它mecab_sparse_tostr,然后最后通过调用使用相同的指针来处理它mecab_destroy

我发现以下在 C# 中有效(如果它有助于作为参考):

但无法在 python 中找到类似的方法。我已经尝试了以下不同的 restypes 和 argtypes。但是该mecab_new2函数总是返回 0(我假设它为空?)。

如果我删除 restype 参数,它返回 0,restype = ctypes.POINTER(ctypes.c_int)它返回一个空指针。

我浏览了类似的问题和文档,但找不到方法。C++ 非常糟糕,因此 ctypes 也是如此。

谢谢。


编辑:我已经尝试了库中的另一个函数,一个不需要任何参数并且运行正确的函数。所以我假设我的问题在于参数不匹配?或者图书馆不知何故坏了?

头文件:

Python代码:

0 投票
3 回答
1349 浏览

python - 解析日语 Python

*****使用完整代码编辑******

我正在尝试使用 Python(版本 3.5.3)和 MacOS 上的 MeCab 库解析一些日语代码。

我有一个包含以下文本的 txt 文件:

石の上に三年

我在我的 textEdit 上设置了我的偏好以使用 utf-8 保存。所以我相信系统正确地将其保存为 utf-8 格式。

我收到以下错误:

贝娄是我的完整代码。什么都没有。

有人知道为什么我会收到此错误消息吗?

有趣的事实:有时它有效。:O

提前致谢,

以色列

0 投票
1 回答
771 浏览

python - MeCab:“ImportError:DLL 加载失败:找不到指定的模块。”

这是第一次使用python。

我通过“mecab_python_windows-0.9.9.6-cp27-cp27m-win32.whl”安装了 MeCab

然后我用了这个

并得到了这个错误

我该如何解决?