Я пытаюсь разобрать текст в созданную мной модель данных, в частности, монстров из и RPG book. Я извлекаю текст из PDF, это выглядит так:
Dire Rat
From age to age, dire rats vary in size. In this age, they're only half
as big as they sometimes get, but they're also twice as vicious.
1
st
level mook [beast ]
Initiative: +2
Infected bite +5 vs. AC-4 ongoing damage
AC 15
PD 15 HP 6 (mook)
MD 10
Mook: Kill one dire rat mook for every 6 damage you deal to the mob.
А вот моя желаемая модель данных, случайно написанная на C #:
public interface IMonsterData
{
string Name { get; }
int Level { get; set; }
string Role { get; set; }
string Type { get; set; }
int Initiative { get; set; }
int ArmorClass { get; set; }
int PhysicalDefense { get; set; }
int MentalDefense { get; set; }
int HealthPoints { get; set; }
}
Желаемый результат будет выглядеть так:
Name = Dire Rat
Level = 1
Role = mook
Type = beast
Initiative = 2
ArmourClass = 15
PhysicalDefense = 15
MentalDefense = 10
HealthPoints = 6
В исходном тексте эти монстры разбросаны по разделу книги, поэтому на большинстве страниц нет монстров, а затем появляется раздел с монстрами. Некоторые помещаются на странице, некоторые разделены, но я не думаю, что это имеет значение, так как я проанализировал весь текст книги как строку, используя найденный инструмент.
Я подошел к этой проблеме с помощью ручного синтаксического анализа с использованием C # и .Net, путем нахождения строк, которые имеют только "st, nd, rd, th" и нахождения AC, PD между такими строками, но у меня есть ощущение, что Это хороший случай, чтобы решить его с помощью Text Mining или какой-либо другой формы машинного обучения.
Проблема в том, что я ничего не знаю о машинном обучении или о правильном алгоритме интеллектуального анализа текста, который можно использовать, и я могу пока только искать, не зная ни одного ключевого слова.
Какую библиотеку, алгоритм или подобное мне следует использовать для достижения моей цели?