質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++11

C++11は2011年に容認されたC++のISO標準です。以前のC++03に代わるもので、中枢の言語の変更・修正、標準ライブラリの拡張・改善を加えたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

2315閲覧

mecabの文字化けについて

rerere0507

総合スコア13

C++11

C++11は2011年に容認されたC++のISO標準です。以前のC++03に代わるもので、中枢の言語の変更・修正、標準ライブラリの拡張・改善を加えたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2016/07/01 11:23

こちらのサイトを参考にしてMecabを使った自然言語を品詞に分解する処理をC++で記述しました.
しかし出力が文字化けしてしまいます.
環境としてCentOS 6.7とMacOS EL Capitan で確認しましたがどちらも文字化けしました.辞書はjumandicを使っています
文字化けするだけでなく品詞分解もおかしい結果が出力されています.
ちなみにシェルからmecabを起動して実行すると上手くいきます.
原因はなんなのでしょうか?個人的には文字列のエンコーディングがうまくいっていないのかと思います....

C++

1#include <vector> 2#include <cstring> 3#include <iostream> 4#include <mecab.h> 5#include <string> 6 7using namespace std; 8 9int main(int argc, char* argv[]) { 10 11 char input[] = u8"私はLinuxユーザです.毎日とても助けられています.MacBookAirをこの前売りに出しました."; 12 char buf[64]; 13 14 15 MeCab::Tagger *tagger = MeCab::createTagger (argc, argv); 16 vector<int> wordlist(0); 17 MeCab::Node* p; 18 int id = 0; 19 20 cout << "INPUT: " << input << endl; 21 cout << "RESULT" << endl; 22 23 const MeCab::Node* node = tagger->parseToNode(input);//形態素解析を行う. 24 for(p = node->next; p != NULL; id++) { 25 strcpy(buf,p->surface); 26 27 buf[p->length]='\0'; 28 cout << id << ":" << buf << endl; 29 p = p->next; 30 } 31 32 return 0; 33}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chironian

2016/07/02 01:18

私はmecabについて知らないので回答できないと思いますが、回答が中々つかないようなので書きます。シェルから呼び出した時正常動作することは記載されてますが、異常動作する時、どのようにして呼び出しているのか記載が漏れてますよ。シェルから呼び出して正常動作するならそれで良いと考える場合が多いです。
guest

回答1

0

自己解決

もうしわけありません.
質問文があまり適切ではなかったので締め切りとさせていただきます
なお文字列解析は別の方法を試したところ無事文字化けも怒らずに動作しました.

投稿2016/07/04 06:17

rerere0507

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問