Система семантического разбора для естественно-языковых текстов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
quot; GRAUNK - смешаные;\n PUN - разделители и знаки препинания.";
MessageBox.Show(str);
}
}
}
//************************************************************
// Mcr
//************************************************************System;System.Collections.Generic;System.Linq;System.Text;System.Runtime.InteropServices;MorphologyModule
{Mcr
{const int MAX_WORD_LEN = 32;const int MAX_WORD_COUNT = 200;
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.In.LayoutKind.Sequential, CharSet = .Runtime.InteropServices.CharSet.Ansi)]struct Tinlex
{
/// char[32]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.ByValTStr, SizeConst = 32)]string anword;
/// unsigned charbyte cid;
/// unsigned charbyte vid;
/// charbyte virt;
/// unsigned charbyte para;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.In.LayoutKind.Sequential)]struct Tinlexdata
{
/// Tinlex[200]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.ByValArray, SizeConst = 200, ArraySubType
= System.Runtime.InteropServices.UnmanagedType.Struct)]Tinlex[] inlex;
/// intint count;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.In.LayoutKind.Sequential)]struct Tid
{
/// unsigned intuint lnk;
/// unsigned charbyte en;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.In.LayoutKind.Sequential)]struct Tids
{
/// Tid[200]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.ByValArray, SizeConst = 200, ArraySubType
= System.Runtime.InteropServices.UnmanagedType.Struct)]Tid[] ids;
/// intint count;
}
// // InitMcr() - инициализировать словарь mcr
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int InitMcr();
// // LoadMcr - загрузить словарь mcr
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int ([System.Runtime.InteropServices.InAttribute()]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.LPStr)] string s);// // SaveMcr - сохранить словарь mcr
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int ([System.Runtime.InteropServices.InAttribute()]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.LPStr)] string s);
// // FindID - поиск слова s в словаре mcr, возвращает int количество
найденых слов и ids
//// (уникальный идентификтор слова = уникальный идентификатор
леммы + номер слова в парадигме)
//// Используйте полученные идентификаторы для получения
грамматических характеристик слова или возврата всей парадигмы
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int ([System.Runtime.InteropServices.InAttribute()]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.LPStr)] string s, ref Tids ids);
// GetByID - для идентификатора id, функция возвращает
грамматические характеристики, лемму или всю парадигмы в outdata
// :: gh_only = true - возвращать только грамматические характеристики
// :: gh_only = false - возвратить грамматические характеристики для id
и лемму (win1251)
// :: all = true - поместить в wout всю парадигму для указанного id с
грамматическими характериситками, доступно только для словарей без
пометы ReadOnly
[DllImport("mcr.dll", CharSet = CharSet.None, EntryPoint =
"GetWordById")]static extern int GetWordById(Tid id,
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.I1)] bool gh_only,
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.I1)] bool all, ref Tinlexdata outdata);
// // ROnly Проверка является ли подключенный словарь - словарем
только для чтения (ReadOnlyDict)
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern bool ReadOnlyDict();
// // AddPara - добавление парадигмы в словарь
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int AddParadigma(ref Tinlexdata indata);
// //3Space - проверка свободного места в словаре, если любой из
аргументов близок к 100% то добавление парадигм будет вскоре
невозможно
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int FreeSpace(System.IntPtr ar1, System.IntPtr ar2, .IntPtr ar3);
// // Информация о версии mcr.dll
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int Ver(System.IntPtr s);
// //Строка постоянной грамматической характеристики
[DllImport("mcr.dll", CharSet = CharSet.None)]
public static extern string ConstIdToStr(byte cid);
// //Строка переменной грамматической характеристики
[DllImport("mcr.dll", CharSet = CharSet.None)]
public static extern string VarIdToStr(byte cid, byte vid);
//Нахождение словоформ по заданной грамматической характеристике
(только для не ReadOnly словарей)
//lnk - номер парадигмы
//const_gh - код постоянной грамматическрй характеристики
(const_gh=0 - любая)
// //var_gh - переменная гр. характеристика
// //all=false - вернуть только первую найденную словоформу
[DllImport("mcr.dll", CharSet = CharSet.None)]static extern int GetBGH(int lnk, byte const_gh, byte var_gh,
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.Inter.UnmanagedType.I1)] bool all, ref Tinlexdata outdata);
}
}