linux
This commit is contained in:
parent
654cdad2e7
commit
6e25c55c14
@ -1,6 +1,6 @@
|
||||
CC=g++
|
||||
CFLAGS=-Wall -O3 -std=gnu++0x
|
||||
LDFLAGS= -lpthread -lrt -lmysqlconn-static -L/usr/local/lib
|
||||
CC=g++-4.8.3
|
||||
CFLAGS=-Wall -O3 -std=gnu++11 -finput-charset=UTF-8 -fexec-charset=UTF-8
|
||||
LDFLAGS= -lpthread -lrt -L/usr/local/lib
|
||||
|
||||
BoostPath=../../../boost_1_56_0
|
||||
|
||||
|
@ -194,8 +194,27 @@ std::map<NounTuple, StringSet> getNounEndingTable()
|
||||
|
||||
bool NounIsInDictionary(std::wstring nounNominative)
|
||||
{
|
||||
|
||||
std::cout <<frequentWordSet.size() << std::endl;
|
||||
|
||||
std::cout << "$$" << UTF16to8(frequentWordSet.begin()->c_str()) << std::endl;
|
||||
std::cout <<"$$" << UTF16to8(nounNominative.c_str()) << std::endl;
|
||||
|
||||
std::cout << "count" << frequentWordSet.count(nounNominative) << std::endl;
|
||||
|
||||
if (nounNominative == frequentWordSet.begin()->c_str())
|
||||
{
|
||||
std::cout <<"true!" << std::endl;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "false!" << std::endl;
|
||||
}
|
||||
|
||||
if (frequentWordSet.count(nounNominative) != 0)
|
||||
{
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -338,31 +357,47 @@ std::wstring RestoreNounByTuple(std::wstring nounBase, NounTuple nounTuple)
|
||||
}
|
||||
|
||||
std::vector<NounStruct> RecognizeNoun(std::wstring noun)
|
||||
{
|
||||
{
|
||||
|
||||
std::cout << "!" << UTF16to8(noun.c_str()) << std::endl;
|
||||
|
||||
std::cout << "?" << UTF16to8(frequentWordSet.begin()->c_str()) <<std::endl;
|
||||
|
||||
|
||||
std::vector<NounStruct> result;
|
||||
|
||||
auto nounEndingDivisionArr = getPossibleNounEndingDivisionArr(noun);
|
||||
|
||||
std::cout << nounEndingDivisionArr.size() << std::endl;
|
||||
|
||||
for (auto nounEndingDivision : nounEndingDivisionArr)
|
||||
{
|
||||
std::wstring nounBase = nounEndingDivision.first;
|
||||
std::wstring nounEnding = nounEndingDivision.second;
|
||||
|
||||
std::vector<NounTuple> possibleTupleArr = GetPossibleNounTupleArr(nounEnding);
|
||||
|
||||
std::cout << "BASE" << UTF16to8(nounBase.c_str()) << std::endl;
|
||||
|
||||
|
||||
for (auto nounTuple : possibleTupleArr)
|
||||
{
|
||||
std::wstring nounNominative = RestoreNounByTuple(nounBase, nounTuple);
|
||||
|
||||
std::cout <<"Nominative" << UTF16to8(nounNominative.c_str()) << std::endl;
|
||||
|
||||
auto possibleNounDetectionSet = GetPossibleNounDeclencionSet(nounNominative);
|
||||
|
||||
|
||||
std::cout <<"setsize" << possibleNounDetectionSet.size() << std::endl;
|
||||
|
||||
if (possibleNounDetectionSet.count(std::get<0>(nounTuple)) != 0)
|
||||
{
|
||||
|
||||
std::cout<<"if1" << std::endl;
|
||||
if (NounIsInDictionary(nounNominative))
|
||||
{
|
||||
std::cout <<"result1 go!" << std::endl;
|
||||
result.push_back({ nounTuple, nounNominative });
|
||||
}
|
||||
}
|
||||
@ -377,8 +412,12 @@ std::vector<NounStruct> RecognizeNoun(std::wstring noun)
|
||||
|
||||
void LoadFrequentWordSet()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
std::ifstream f("C:/Workplace/ChineseJournal/rudict/frequent_words.txt");
|
||||
|
||||
#else
|
||||
std::ifstream f("/home/devuser/workplace/rudict/frequent_words.txt");
|
||||
#endif
|
||||
//f.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
|
||||
|
||||
std::string line;
|
||||
@ -386,6 +425,7 @@ void LoadFrequentWordSet()
|
||||
|
||||
if (f.is_open())
|
||||
{
|
||||
std::cout<<"File found!" << std::endl;
|
||||
while (getline(f, line))
|
||||
{
|
||||
wline = UTF8to16(line.c_str());
|
||||
@ -393,4 +433,8 @@ void LoadFrequentWordSet()
|
||||
}
|
||||
f.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout <<"file not found!" << std::endl;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user