这似乎与日语问题有关, 所以我也问了Japanese StackOverflow。在
当我使用stringjust object时,它工作得很好。在
我试图编码,但我找不到这个错误的原因。 你能给我些建议吗?在
MeCab是一个开放源码的文本分割库,最初由Nara科学技术研究所开发,目前由Taku Kudou(藤拓)维护,作为他在Google日语输入项目中工作的一部分。 https://en.wikipedia.org/wiki/MeCab
在示例.csv在
0,今日も夜まで働きました。
1,オフィスには誰もいませんが、エラーと格闘中
2,デバッグばかりしていますが、どうにもなりません。
这是熊猫Python的密码
^{pr2}$这是跟踪错误
りんご リンゴ りんご 名詞-一般
を ヲ を 助詞-格助詞-一般
食べ タベ 食べる 動詞-自立 一段 連用形
まし マシ ます 助動詞 特殊・マス 連用形
た タ た 助動詞 特殊・タ 基本形
、 、 、 記号-読点
そして ソシテ そして 接続詞
、 、 、 記号-読点
みかん ミカン みかん 名詞-一般
も モ も 助詞-係助詞
食べ タベ 食べる 動詞-自立 一段 連用形
まし マシ ます 助動詞 特殊・マス 連用形
た タ た 助動詞 特殊・タ 基本形
EOS
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-174-81a0d5d62dc4> in <module>()
32 aa = extractKeyword(text) #working!!
33
---> 34 me = df.apply(lambda x: extractKeyword(x))
~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in apply(self, func, axis, broadcast, raw, reduce, args, **kwds)
4260 f, axis,
4261 reduce=reduce,
-> 4262 ignore_failures=ignore_failures)
4263 else:
4264 return self._apply_broadcast(f, axis)
~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in _apply_standard(self, func, axis, ignore_failures, reduce)
4356 try:
4357 for i, v in enumerate(series_gen):
-> 4358 results[i] = func(v)
4359 keys.append(v.name)
4360 except Exception as e:
<ipython-input-174-81a0d5d62dc4> in <lambda>(x)
32 aa = extractKeyword(text) #working!!
33
---> 34 me = df.apply(lambda x: extractKeyword(x))
<ipython-input-174-81a0d5d62dc4> in extractKeyword(text)
20 """Morphological analysis of text and returning a list of only nouns"""
21 tagger = MeCab.Tagger('-Ochasen')
---> 22 node = tagger.parseToNode(text)
23 keywords = []
24 while node:
~/anaconda3/lib/python3.6/site-packages/MeCab.py in parseToNode(self, *args)
280 __repr__ = _swig_repr
281 def parse(self, *args): return _MeCab.Tagger_parse(self, *args)
--> 282 def parseToNode(self, *args): return _MeCab.Tagger_parseToNode(self, *args)
283 def parseNBest(self, *args): return _MeCab.Tagger_parseNBest(self, *args)
284 def parseNBestInit(self, *args): return _MeCab.Tagger_parseNBestInit(self, *args)
TypeError: ("in method 'Tagger_parseToNode', argument 2 of type 'char const *'", 'occurred at index 0')w
我知道你在日语StackOverflow上得到了一些帮助,但是这里有一个英语答案:
你的第一件事就是解决这个问题示例.csv作为标题。要解决这个问题,请在
read_csv
中使用names
参数。在接下来,
df.apply
将默认地对dataframe的列应用函数。您需要做一些类似df.apply(lambda x: extractKeyword(x['String']), axis=1)
的操作,但这行不通,因为每个句子都有不同数量的名词,Pandas会抱怨它不能在1x5数组上堆叠1x2数组。最简单的方法是在String
的序列上apply
。在最后一个问题是,MeCab Python3绑定中有一个bug:请参见https://github.com/SamuraiT/mecab-python3/issues/3您通过运行两次
parseToNode
找到了一个解决方法,您还可以在parseToNode
之前调用parse
。在把这三件事放在一起:
运行此脚本时,使用示例.csv您提供:
^{pr2}$每次parseToNode失败, 所以需要把这个代码
以前
^{pr2}$而且成功了!在
但我不知道原因,也许parseToNode方法有bug。。在
相关问题 更多 >
编程相关推荐