Я хочу обучить языковой модели с использованием NLTK в Python, но у меня возникло несколько проблем.во-первых, я не знаю, почему мои слова превращаются в просто символы, когда я пишу что-то вроде этого:
s = "Natural-language processing (NLP) is an area of computer science " \
"and artificial intelligence concerned with the interactions " \
"between computers and human (natural) languages."
s = s.lower();
paddedLine = pad_both_ends(word_tokenize(s),n=2);
train, vocab = padded_everygram_pipeline(2, paddedLine)
print(list(vocab))
lm = MLE(2);
lm.fit(train,vocab)
, а печатный словарь - это нечто вроде этого, которое явно не правильно (я не хочуработать с символами!), это часть вывода.:
<s>', '<', 's', '>', '</s>', '<s>', 'n', 'a', 't', 'u', 'r', 'a', 'l', '-', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', '</s>', '<s>', 'p', 'r', 'o', 'c', 'e', 's', 's', 'i', 'n', 'g', '</s>', '<s>', '(', '</s>', '<s>', 'n', 'l', 'p', '</s>', '<s>', ')', '</s>'
Почему мой ввод превращается в символы?я сделал эту работу по-другому, но безуспешно:
paddedLine = pad_both_ends(word_tokenize(s),n=2);
#train, vocab = padded_everygram_pipeline(2, tokens)
#train = everygrams(paddedLine,max_len = 2);
train = ngrams(paddedLine,2);
vocab = Vocabulary(paddedLine,unk_cutoff = 1);
print(list(train))
lm = MLE(2);
lm.fit(train,vocab)
когда я запускаю этот код, мой поезд абсолютно ничего, пусто!это показывает мне "[]" !!проводная вещь, когда я комментирую эту строку сверху кода:
vocab = Vocabulary(paddedLine,unk_cutoff = 1);
теперь мои данные поезда в порядке и что-то вроде этого, это правильно:
[('<s>', 'natural-language'), ('natural-language', 'processing'), ('processing', '('), ('(', 'nlp'), ('nlp', ')'), (')', 'is'), ('is', 'an'), ('an', 'area'), ('area', 'of'), ('of', 'computer'), ('computer', 'science'), ('science', 'and'), ('and', 'artificial'), ('artificial', 'intelligence'), ('intelligence', 'concerned'), ('concerned', 'with'), ('with', 'the'), ('the', 'interactions'), ('interactions', 'between'), ('between', 'computers'), ('computers', 'and'), ('and', 'human'), ('human', '('), ('(', 'natural'), ('natural', ')'), (')', 'languages'), ('languages', '.'), ('.', '</s>')]
что с ним не так?Кстати, я должен сказать, что я не эксперт в Python или NLTK, и это мой первый опыт.Следующий вопрос: как я могу использовать сглаживание по колену или сглаживанию на тренировочной модели?и я делаю обучение языковой модели правильно?мои данные обучения просты:
"Natural-language processing (NLP) is an area of computer science " \
"and artificial intelligence concerned with the interactions " \
"between computers and human (natural) languages."
спасибо.