Система семантического разбора для естественно-языковых текстов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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);

}

}