Моделирование маршрутов грузовых кораблей при помощи анализа бортовых журналов с использованием NLP-технологий

Заказать уникальную дипломную работу
Тип работы: Дипломная работа
Предмет: Моделирование систем
  • 70 70 страниц
  • 25 + 25 источников
  • Добавлена 01.07.2023
2 500 руб.
  • Содержание
  • Часть работы
  • Список литературы
Введение 3
1. Теоретическая часть 5
1.1 Моделирование маршрутов кораблей 6
1.2 Бортовые журналы грузовых кораблей 11
1.3 Обзор NLP технологии 19
2. Практическая часть 25
2.1 Постановка проблемы 25
2.2 Выбор наилучшего варианта ее решения 31
2.3 Реализация решения 67
2.4 Выводы 70
Заключение 71
Библиографический список. 72

Фрагмент для ознакомления

Почему бы 'Discovery'дать вам 'discoveri', когда 'Discovering'дает вам 'discov'?Недостаток и чрезмерный рост — это два способа, которыми стемминг может пойти не так:Недостаток корня происходит, когда два родственных слова должны быть сведены к одной и той же основе, но это не так. Это ложноотрицательный результат .Overstemming происходит, когда два не связанных между собой слова сводятся к одной и той же основе, даже если это не так. Это ложноположительный результат .Алгоритм стемминга Портера датируется 1979 годом, поэтому он немного устарел. Стеммер Snowball , который также называется Porter2 , является усовершенствованием оригинала и также доступен через NLTK, поэтому вы можете использовать его в своих собственных проектах. Также стоит отметить, что целью стеммера Портера является не создание полных слов, а поиск вариантов форм слова.К счастью, у вас есть другие способы приведения слов к их основному значению, такие как лемматизация, которую вы увидите позже в этом руководстве. Но сначала нам нужно охватить части речи.Пометка частей речиЧасть речи — это грамматический термин, который описывает роли, которые играют слова, когда вы используете их вместе в предложениях. Тегирование частей речи или POS-тегирование — это задача маркировки слов в вашем тексте в соответствии с их частью речи.В английском языке восемь частей речи:Часть речиРольПримерыСуществительноеЭто человек, место или вещьгора, бублик, ПольшаМестоимениеЗаменяет существительноеты, она, мыПрилагательноеДает информацию о том, на что похоже существительноеэффективный, ветреный, красочныйГлаголЯвляется ли действие или состояние бытияучиться, есть, идтиНаречиеДает информацию о глаголе, прилагательном или другом наречииэффективно, всегда, оченьПредлогДает информацию о том, как существительное или местоимение связано с другим словомот, о, вСоединениеСоединяет два других слова или фразытак, потому что иМеждометиеВосклицательный знакай, вау, вауНекоторые источники также включают артикли категорий (например, «a» или «the») в список частей речи, но другие источники считают их прилагательными. NLTK использует определитель слова для обозначения статей.Вот как можно импортировать соответствующие части NLTK, чтобы пометить части речи:>>>>>> fromnltk.tokenizeimportword_tokenize>>>>>> importnltk>>> nltk.pos_tag(words_in_sagan_quote)Все слова в цитате теперь находятся в отдельном кортеже с тегом, представляющим их часть речи. Но что означают теги? Вот как получить список тегов и их значений:>>>>>> nltk.help.upenn_tagset()Список довольно длинный, но вы можете развернуть поле ниже, чтобы увидеть его.POS-теги и их значенияВот сводка, которую вы можете использовать, чтобы начать работу с POS-тегами NLTK:Теги, которые начинаются сИметь дело сJJприлагательныеNNСуществительныеRBНаречияPRPМестоименияVBГлаголыТеперь, когда вы знаете, что означают теги POS, вы можете видеть, что ваши теги были довольно успешными:'pie'был помечен NN, потому что это существительное в единственном числе.'you'был помечен PRP, потому что это личное местоимение.'invent'был помечен VB, потому что это основная форма глагола.Принятые английские слова, такие как 'and'и, 'the'были правильно помечены как союз и определитель соответственно. Это тарабарское слово 'slithy'было помечено как прилагательное, что человек, говорящий по-английски, вероятно, также предположил бы из контекста стихотворения. лемматизацияТеперь, когда вы разобрались с частями речи, вы можете вернуться к лемматизации. Подобно поиску корней, лемматизация сводит слова к их основному значению, но дает вам полное английское слово, которое имеет смысл само по себе, а не просто фрагмент слова, такого как 'discoveri'.Примечание. Лемма — это слово, представляющее целую группу слов , и эта группа слов называется лексемой .Например, если бы вы искали слово «смешивание» в словаре , вам нужно было бы найти запись для «смешивания», но вы бы нашли слово «смешивание» в списке в этой записи.В данном примере «смесь» — это лемма , а «смесь» — часть лексемы . Итак, когда вы лемматизируете слово, вы сводите его к его лемме.Вот как импортировать соответствующие части NLTK, чтобы начать лемматизацию:>>>>>> fromnltk.stemimportWordNetLemmatizerСоздайте лемматизатор для использования:>>>>>> lemmatizer=WordNetLemmatizer()Параметр по умолчанию для posпредназначен 'n'для существительного, но вы удостоверились, что оно "worst"рассматривается как прилагательное, добавив параметр pos="a". В результате у вас получилось 'bad', которое сильно отличается от вашего исходного слова и совсем не похоже на то, что вы получили бы, если бы вы составляли основу. Это потому, что "worst"это превосходная форма прилагательного 'bad', а лемматизация уменьшает превосходную степень, а также сравнительную степень к их леммам.Теперь, когда вы знаете, как использовать NLTK для обозначения частей речи, вы можете попробовать пометить свои слова перед их лемматизацией, чтобы избежать смешения омографов или слов, которые пишутся одинаково, но имеют разное значение и могут быть разными частями речи.ЧанкингВ то время как токенизация позволяет идентифицировать слова и предложения, фрагментация позволяет идентифицировать фразы .Примечание. Фраза — это слово или группа слов, которые работают как единое целое для выполнения грамматической функции . Существительные словосочетания строятся вокруг существительного.Вот некоторые примеры:"Планета"«Наклоняющаяся планета»«Быстро наклоняющаяся планета»Разделение на фрагменты использует теги POS для группировки слов и применения тегов фрагментов к этим группам. Куски не перекрываются, поэтому один экземпляр слова может быть только в одном фрагменте за раз.Вот как можно импортировать соответствующие части NLTK, чтобы разбить их на части:>>>>>> fromnltk.tokenizeimportword_tokenizeУ вас есть список кортежей всех слов в цитате вместе с их тегом POS. Для того, чтобы разбить фрагмент, вам сначала нужно определить грамматику фрагмента.Примечание. Фрагментная грамматика представляет собой комбинацию правил разделения предложений на фрагменты. Он часто использует регулярные выражения или регулярные выражения .Создайте грамматику фрагмента с одним правилом регулярного выражения:>>>>>> grammar="NP: {

?*}"NPобозначает именное словосочетание. Согласно созданному вами правилу, ваши чанки:Начните с необязательного ( ?) определителя ( 'DT')Может иметь любое количество ( *) прилагательных ( JJ)Заканчиваться существительным ( )Создайте синтаксический анализатор фрагментов с этой грамматикой:>>>>>> chunk_parser=nltk.RegexpParser(grammar)Теперь попробуйте это с вашей цитатой:>>>>>> tree=chunk_parser.parse(lotr_pos_tags)Вот как вы можете увидеть визуальное представление этого дерева:>>>>>> tree.draw()Вот как выглядит визуальное представление:Рисунок 10 – чанкинг визуальноУ вас получилось два словосочетания:'a dangerousbusiness'имеет определитель, прилагательное и существительное.'door'есть только существительное.Теперь, когда вы знаете о чанкинге, пришло время взглянуть на чинкинг.Чеканка.Чеканка используется вместе с фрагментацией, но в то время как фрагментация используется для включения шаблона, фрагментация используется для исключения шаблона.Давайте повторно используем цитату, которую вы использовали в разделе, посвященном фрагментации. У вас уже есть список кортежей, содержащих каждое из слов в цитате вместе с его тегом части речи:Следующим шагом является создание грамматики, чтобы определить, что вы хотите включить и исключить из своих фрагментов. На этот раз вы будете использовать более одной строки, потому что у вас будет более одного правила. Поскольку вы используете более одной строки для грамматики, вы будете использовать тройные кавычки ( """):>>>>>> grammar="""... Chunk: {<.*>+}... }{"""Первое правило вашей грамматики {<.*>+}. Это правило имеет фигурные скобки, обращенные внутрь ( {}), потому что оно используется для определения шаблонов, которые вы хотите включить в свои фрагменты. В этом случае вы хотите включить все: <.*>+.Второе правило вашей грамматики }{. Это правило имеет фигурные скобки, обращенные наружу ( }{), потому что оно используется для определения шаблонов, которые вы хотите исключить из своих фрагментов. В этом случае вы хотите исключить прилагательные: .Создайте синтаксический анализатор фрагментов с этой грамматикой:>>>>>> chunk_parser=nltk.RegexpParser(grammar)Теперь разбейте ваше предложение на части с указанными вами звеньями:>>>>>> tree=chunk_parser.parse(lotr_pos_tags)Вы получаете это дерево в результате:>>>>>> treeTree('S', [Tree('Chunk', [('It', 'PRP'), ("'s", 'VBZ'), ('a', 'DT')]), ('dangerous', 'JJ'), Tree('Chunk', [('business', 'NN'), (',', ','), ('Frodo', 'NNP'), (',', ','), ('going', 'VBG'), ('out', 'RP'), ('your', 'PRP$'), ('door', 'NN'), ('.', '.')])])В данном случае ('dangerous', 'JJ')было исключено из фрагментов, поскольку это прилагательное ( JJ). Но это будет легче увидеть, если вы снова получите графическое представление:>>>>>> tree.draw()Вы получаете это визуальное представление tree:Рисунок 11 – Чеканка визуальноЗдесь вы исключили прилагательное 'dangerous'из своих фрагментов и остались с двумя фрагментами, содержащими все остальное. Первый блок содержит весь текст, который появился перед исключенным прилагательным. Второй фрагмент содержит все после исключенного прилагательного.Теперь, когда вы знаете, как исключить шаблоны из своих фрагментов, пришло время изучить распознавание именованных объектов (NER).Использование распознавания именованных объектов (NER)Именованные сущности — это именные словосочетания, которые относятся к определенным местам, людям, организациям и т. д. С распознаванием именованных объектов вы можете найти именованные объекты в своих текстах, а также определить, к какому типу именованных объектов они относятся.Вот список именованных типов сущностей из книги NLTK :тип СВПримерыОРГАНИЗАЦИЯГрузия-Пасифик Корп., ВОЗЧЕЛОВЕКЭдди Бонте, президент ОбамаРАСПОЛОЖЕНИЕРека Мюррей, гора ЭверестДАТАИюнь, 2008-06-29ВРЕМЯдва пятьдесят утра, 13:30ДЕНЬГИ175 миллионов канадских долларов, 10,40 фунтов стерлинговПРОЦЕНТдвадцать процентов, 18,75 %СРЕДСТВОМонумент Вашингтона, СтоунхенджГПОЮго-Восточная Азия, МидлотианВы можете использовать nltk.ne_chunk()для распознавания именованных объектов. Давайте lotr_pos_tagsснова используем, чтобы проверить это:>>>>>> nltk.download("maxent_ne_chunker")>>> nltk.download("words")>>> tree=nltk.ne_chunk(lotr_pos_tags)Теперь взгляните на визуальное представление:>>>>>> tree.draw()Вот что вы получаете:Рисунок 12 – NERвизуальноПосмотрите, как Frodoбыл помечен как PERSON? У вас также есть возможность использовать этот параметр, binary=Trueесли вы просто хотите знать, что представляют собой именованные объекты, но не какие они:>>>>>> tree=nltk.ne_chunk(lotr_pos_tags,binary=True)>>> tree.draw()Теперь все, что вы видите, Frodoэто NE:Рисунок 13 – NERвизуально второй вариантТеперь создайте функцию для извлечения именованных сущностей:>>>>>> defextract_ne(quote):... words=word_tokenize(quote,language=language)... tags=nltk.pos_tag(words)... tree=nltk.ne_chunk(tags,binary=True)... returnset(... " ".join(i[0]foriint)... fortintree... ifhasattr(t,"label")andt.label()=="NE"... )С помощью этой функции вы собираете все именованные объекты без повторений. Для этого вы размечаете слова, применяете теги части речи к этим словам, а затем извлекаете именованные объекты на основе этих тегов. Поскольку вы включили binary=True, именованные объекты, которые вы получите, не будут помечены более конкретно. Вы просто будете знать, что это именованные сущности.Создание дисперсионного графикаВы можете использовать дисперсионный график , чтобы увидеть, сколько раз встречается конкретное слово и где оно встречается. До сих пор мы искали "man"и "woman", но было бы интересно посмотреть, как часто эти слова используются по сравнению с их синонимами:>>>>>> text8.dispersion_plot(... ["woman","lady","girl","gal","man","gentleman","boy","guy"]... )Вот график дисперсии, который вы получаете:Рисунок 14 – дисперсионный анализКаждая вертикальная синяя линия представляет один экземпляр слова. Каждый горизонтальный ряд синих линий представляет корпус в целом. Этот график показывает, что:"lady"использовался намного больше, чем "woman"или "girl". Случаев не было "gal"."man"и "guy"использовались одинаковое количество раз и были более распространены, чем "gentleman"или "boy".Вы используете график дисперсии, когда хотите увидеть, где слова появляются в тексте или корпусе. Если вы анализируете один текст, это может помочь вам увидеть, какие слова появляются рядом друг с другом. Если вы анализируете корпус текстов, организованный в хронологическом порядке, это может помочь вам увидеть, какие слова использовались в большей или меньшей степени в течение определенного периода времени.Диаграммы дисперсии — это только один тип визуализации, который вы можете сделать для текстовых данных. Следующее, на что вы обратите внимание, — это частотные распределения.Создание частотного распределенияС помощью частотного распределения вы можете проверить, какие слова чаще всего встречаются в вашем тексте. Вам нужно будет начать с import:>>>>>> fromnltkimportFreqDistFreqDistявляется подклассом collections.Counter. Вот как создать частотное распределение всего корпуса личных объявлений:>>>>>> frequency_distribution=FreqDist(text8)>>> print(frequency_distribution)Поскольку 1108образцы и 4867результаты — это большой объем информации, начните с ее сужения. Вот как увидеть 20самые распространенные слова в корпусе:>>>>>> frequency_distribution.most_common(20)У вас есть много стоп-слов в частотном распределении, но вы можете удалить их так же, как и раньше . Создайтесписоквсехслов, text8которыенеявляютсястоп-словами:>>>>>> meaningful_words=[... wordforwordintext8ifword.casefold()notinstop_words... ]Теперь, когда у вас есть список всех слов в вашем корпусе, которые не являются стоп-словами, сделайте частотное распределение:>>>>>> frequency_distribution=FreqDist(meaningful_words)Обратите внимание на 20самые распространенные слова:>>>>>> frequency_distribution.most_common(20)[(',', 539), ('.', 353), ('/', 110), ('lady', 68), ('-', 66), ('seeks', 60), ('ship', 33), ('&', 30), ('relationship', 29), ('fun', 28), ('slim', 27), ('build', 27), ('smoker', 23), ('50', 23), ('non', 22), ('movies', 22), ('good', 21), ('honest', 20),('dining', 19),('rship', 18)]Вы можете превратить этот список в график:>>>>>> frequency_distribution.plot(20,cumulative=True)Вот график, который вы получаете:Рисунок 15 – Частотное распределение словПоиск словосочетанийСловосочетание — это последовательность слов , которая часто встречается. Если вас интересуют распространенные словосочетания в английском языке, вы можете обратиться к Словарю английских словосочетаний BBI . Это удобный справочник, который вы можете использовать, чтобы убедиться, что ваше письмо идиоматично . Вот несколько примеров словосочетаний, в которых используется слово «дерево»:Синтаксическое деревоСемейное деревоДрево решенийЧтобы увидеть пары слов, которые часто встречаются в вашем корпусе, вам нужно обратиться .collocations()к нему:>>>>>> text8.collocations()would like; medium build; social drinker; quiet nights; non smoker;long term; age open; Would like; easy going; financially secure; funtimes; similar interests; Age open; weekends away; possrship; wellpresented; never married; single mum; permanent relationship; slimbuildslimbuildпоявились, как mediumbuildи несколько других словосочетаний. Но никаких долгих прогулок по пляжу!Но что произойдет, если вы будете искать словосочетания после лемматизации слов в своем корпусе? Сможете ли вы найти какие-то сочетания слов, которые вы пропустили в первый раз, потому что они встречались в несколько иных вариантах?Если вы следовали инструкциям ранее , то у вас уже есть lemmatizer, но вы не можете вызывать collocations()любой тип данных , поэтому вам потребуется выполнить некоторую подготовительную работу. Начните с создания списка лемматизированных версий всех слов в text8:>>>>>> lemmatized_words=[lemmatizer.lemmatize(word)forwordintext8]Но для того, чтобы вы могли выполнять задачи лингвистической обработки, которые вы видели до сих пор, вам нужно создать текст NLTK с этим списком:>>>>>> new_text=nltk.Text(lemmatized_words)Вот как увидеть словосочетания в вашем new_text:>>>>>> new_text.collocations()medium build; social drinker; non smoker; long term; would like; ageopen; easy going; financially secure; Would like; quiet night; Ageopen; well presented; never married; single mum; permanentrelationship; slim build; year old; similar interest; fun time; PhotoПо сравнению с вашим предыдущим списком словосочетаний, в этом новом недостает нескольких:weekendsawaypossrshipИдея quietnightsвсе еще проявляется в лемматизированной версии, quietnight. Ваш последний поиск словосочетаний также принес несколько новостей:yearoldпредполагает, что пользователи часто упоминают возраст.photoplsпредполагает, что пользователи часто запрашивают одну или несколько фотографий.Реализация решенияВ итоге, все полученные сведения отправляются на вход системы моделирования.Рисунок 16 – алгоритм работы системы моделированияТо есть на вход в систему моделирования идет не только информация с бортового журнала, но и вся текущая ситуация на момент выполнения движения, это и геополитические факторы, например , тоже.Далее система моделирования рассчитывает фактический и оптимальный маршрут и выдает величину расхождений, по которым в дальнейшем можно дать оценку действия капитана грузового судна. Следует помнить, что необходимо выбирать различные приоритеты при анализе маршрута, например, безопасность движения или скорость доставки.Рисунок 17 – общий алгоритм работыВ итоге, предлагается для распознавания информации с бортового журнала использовать глубокое обучение, причем нейросеть находится на облаке. Далее применяются NLPтехнологии, и на выходе информации вполне хватает для успешного моделирования движения корабля. Однако же отметим, что такая предложенная схема моделирования будет работать постфактум и , следовательно, будет эффективнее работать идея рекомендательной системы, что позволит владельцу судна контролировать ситуацию в любой момент времени.Рисунок 18 – алгоритм работы рекомендательной системыВ предлагаемой схеме работы рекомендательной системы уже будет более эффективный контроль над судном, то есть владелец грузового корабля будет видеть, насколько капитан эффективно управляет судном, в режиме практически онлайн. Также внедрение такой рекомендательной системы облегчит работу капитана, единственное, что следует предусмотреть постоянный выход в Интернет для моментального обмена информацией.ВыводыВ итоге, получилось разработать алгоритм моделирования движения грузового корабля на основе анализа бортового журнала NLPтехнологиями, были освоены и применены различные технологии искусственного интеллекта, такие как нейронные сети и NLPТехнологии. Был предложен алгоритм работы рекомендательной системы.ЗаключениеВ заключение, дипломный проект на тему «Моделирование маршрутов грузовых судов с использованием анализа бортовых журналов с использованием технологий НЛП» является значительным вкладом в область морской логистики и перевозок. Проект был направлен на разработку основы для моделирования маршрутов грузовых судов путем анализа их бортовых журналов с использованием технологий обработки естественного языка (NLP). Исследование включало сбор и анализ данных бортовых журналов с различных грузовых судов, а также обработку этих данных с использованием различных методов НЛП, таких как анализ настроений и распознавание объектов.Результаты исследования показали, что технологии НЛП можно эффективно использовать для анализа данных судового журнала и моделирования маршрутов грузовых судов. Структура, разработанная в рамках проекта, может помочь в прогнозировании оптимальных маршрутов судоходства, выявлении факторов, влияющих на маршруты судоходства, и повышении общей эффективности в морской отрасли. Проект также подчеркнул важность анализа данных и передовых технологий для повышения производительности грузовых судов и улучшения морских перевозок.В заключение, дипломный проект «Моделирование маршрутов грузовых судов с использованием анализа вахтенных журналов с использованием технологий НЛП» является ценным дополнением в области морской логистики и перевозок. Структура, разработанная в рамках проекта, может революционизировать способы управления и эксплуатации грузовых судов, тем самым повышая эффективность и производительность морской отрасли. Дальнейшие исследования в этой области могут помочь уточнить методы, используемые в проекте, и разработать более сложные подходы к моделированию маршрутов грузовых судов.Библиографический список.W. Pan, QL Dong, XW Xu, «Планированиемаршрутаинтеллектуальныхсудовсучетомфакторовнавигационнойсреды», Journal of Shanghai Maritime University , vol. 42, нет. 3, стр. 76–84, 2021.Л.П. Ван, З. Чжан и С. Ма, «Улучшенное планирование маршрута судна на основе генетического алгоритма с учетом ограничений маневренности корабля», Журнал Харбинского инженерного университета , том. 42, нет. 7, стр. 1056–1062, 2021.XX Yao, QY Hu и C. Yang, «Планирование маршрута судов с помощью алгоритма колонии муравьев и массивных данных AIS», Journal of Transport Information andSafety ,vol. 37, нет. 3, стр. 79–85, 2019.ZH Han, YB Zhang и Y. Zhang, «Автоматическое планирование маршрута корабля на основе глубокого обучения с подкреплением», NavigationofChina ,vol. 44, нет. 1, стр. 100–105, 2021.GX Wang, LC Wang и J. Zheng, «Метод динамического планирования маршрута для интеллектуальных судов с учетом сложных метеорологических изменений», Журнал Шанхайского морского университета , том. 42, нет. 1, стр. 1–6, 2021.Ю. Лю, С. Л. Се и А. Хе, «Последовательное планирование маршрута судна через территорию многоэтажных строительных площадок», « Навигация Китая » , том. 42, нет. 3, стр. 51–54, 2019.Дж. Л. Дуан и Ю. Хан, «Алгоритм планирования маршрута, основанный на исторической статистике путей», Журнал Шанхайского научно-исследовательского института судоходства , том. 43, нет. 2, стр. 10–14, 2020.М.Ю. Пан, Ю.С. Лю и К. Ли, «Улучшенное планирование маршрутов на основе алгоритма и его применение для сети внутренних водных путей», Журнал Шанхайского морского университета , том. 41, нет. 1, стр. 40–45, 2020.JH Jin, J. Sun и T. ZhangA, «Планирование пути USV на основе квантовой оптимизации роя частиц», Journal ofShipMechanics ,vol. 24, нет. 3, стр. 352–361, 2020.M. ZhangL и F. WuX, «Метод планирования оптимизации маршрута распределения грузовых судов в условиях низкого содержания углерода», Ship Science andTechnology ,vol. 43, нет. 18, стр. 181–183, 2021.Moens, M.-F. Information Extraction: Algorithms and Prospects in a Retrieval Context. – Netherlands: Springer. – 2009. – 255 p. Большакова Е. И. И др. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика: учеб.пособие – М.: МИЭМ, 2011. — 272 с. Jurafsky D., Martin J. H. Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition // Prentice Hall series in artificial intelligence. – 2009. Chowdhury G. G. Natural language processing // Annual review of information science and technology. – 2003. – Vol. 37. – №. 1. – P. 51-89. Кольцова Д. А., Кольцов С. В. История и развитие машинного перевода // Русский язык и культура в зеркале перевода: IX Международная научная конференция «Русский язык и культура в зеркале перевода». – 2019. – Т. 10. – С. 130. Wortzel A. ELIZA REDUX: A Mutable Iteration // Leonardo. – 2007. – Vol. 40. – №. 1. – P. 31-36. Winograd T. Procedures as a representation for data in a computer program for understanding natural language. – Massachusetts. Inst. Of Tech. – Cambridge. – 1971. – AI Technical Report № 84. Thuraisingham B. A primer for understanding and applying data mining // It Professional. – 2000. – Vol. 2. – №. 1. – P. 28-31. Waldrop M. M. The chips are down for Moore’s law // Nature News. – 2016. – Vol. 530. – №. 7589. – P. 144. Sha F., Pereira F. Shallow parsing with conditional random fields // Proceedings of the 2003 Conference of the North American Chapter of the Association for Computational Linguistics on Human Language TechnologyVol. 1. – Association for Computational Linguistics. –2003. – P. 134-141. Collins M., Koehn P., Kučerová I. Clause restructuring for statistical machine translation // Proceedings of the 43rd annual meeting on association for 89 computational linguistics. – Association for Computational Linguistics. – 2005. – P. 531-540. Kaelbling L. P., Littman M. L., Moore A. W. Reinforcement learning: A survey //Journal of artificial intelligence research. – 1996. – Vol. 4. – P. 237-285. Hofmann T. Unsupervised learning by probabilistic latent semantic analysis //Machine learning. – 2001. – Vol. 42. – №. 1-2. – P. 177-196. Goldberg Y. A primer on neural network models for natural language processing //Journal of Artificial Intelligence Research. – 2016. – Vol. 57. – P. 345-420. Jozefowicz R. et al. Exploring the limits of language modeling //arXiv preprint arXiv:1602.02410. – 2016.

1. W. Pan, QL Dong, XW Xu, «Планирование маршрута интеллектуальных судов с учетом факторов навигационной среды», Journal of Shanghai Maritime University , vol. 42, нет. 3, стр. 76–84, 2021.
2. Л.П. Ван, З. Чжан и С. Ма, «Улучшенное планирование маршрута судна на основе генетического алгоритма с учетом ограничений маневренности корабля», Журнал Харбинского инженерного университета , том. 42, нет. 7, стр. 1056–1062, 2021.
3. XX Yao, QY Hu и C. Yang, «Планирование маршрута судов с помощью алгоритма колонии муравьев и массивных данных AIS», Journal of Transport Information and Safety , vol. 37, нет. 3, стр. 79–85, 2019.
4. ZH Han, YB Zhang и Y. Zhang, «Автоматическое планирование маршрута корабля на основе глубокого обучения с подкреплением», Navigation of China , vol. 44, нет. 1, стр. 100–105, 2021.
5. GX Wang, LC Wang и J. Zheng, «Метод динамического планирования маршрута для интеллектуальных судов с учетом сложных метеорологических изменений», Журнал Шанхайского морского университета , том. 42, нет. 1, стр. 1–6, 2021.
6. Ю. Лю, С. Л. Се и А. Хе, «Последовательное планирование маршрута судна через территорию многоэтажных строительных площадок», « Навигация Китая » , том. 42, нет. 3, стр. 51–54, 2019.
7. Дж. Л. Дуан и Ю. Хан, «Алгоритм планирования маршрута, основанный на исторической статистике путей», Журнал Шанхайского научно-исследовательского института судоходства , том. 43, нет. 2, стр. 10–14, 2020.
8. М.Ю. Пан, Ю.С. Лю и К. Ли, «Улучшенное планирование маршрутов на основе алгоритма и его применение для сети внутренних водных путей», Журнал Шанхайского морского университета , том. 41, нет. 1, стр. 40–45, 2020.
9. JH Jin, J. Sun и T. ZhangA, «Планирование пути USV на основе квантовой оптимизации роя частиц», Journal of Ship Mechanics , vol. 24, нет. 3, стр. 352–361, 2020.
10. M. ZhangL и F. WuX, «Метод планирования оптимизации маршрута распределения грузовых судов в условиях низкого содержания углерода», Ship Science and Technology , vol. 43, нет. 18, стр. 181–183, 2021.
11. Moens, M.-F. Information Extraction: Algorithms and Prospects in a Retrieval Context. – Netherlands: Springer. – 2009. – 255 p.
12. Большакова Е. И. И др. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика: учеб.пособие – М.: МИЭМ, 2011. — 272 с.
13. Jurafsky D., Martin J. H. Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition // Prentice Hall series in artificial intelligence. – 2009.
14. Chowdhury G. G. Natural language processing // Annual review of information science and technology. – 2003. – Vol. 37. – №. 1. – P. 51-89.
15. Кольцова Д. А., Кольцов С. В. История и развитие машинного перевода // Русский язык и культура в зеркале перевода: IX Международная научная конференция «Русский язык и культура в зеркале перевода». – 2019. – Т. 10. – С. 130.
16. Wortzel A. ELIZA REDUX: A Mutable Iteration // Leonardo. – 2007. – Vol. 40. – №. 1. – P. 31-36.
17. Winograd T. Procedures as a representation for data in a computer program for understanding natural language. – Massachusetts. Inst. Of Tech. – Cambridge. – 1971. – AI Technical Report № 84.
18. Thuraisingham B. A primer for understanding and applying data mining // It Professional. – 2000. – Vol. 2. – №. 1. – P. 28-31.
19. Waldrop M. M. The chips are down for Moore’s law // Nature News. – 2016. – Vol. 530. – №. 7589. – P. 144.
20. Sha F., Pereira F. Shallow parsing with conditional random fields // Proceedings of the 2003 Conference of the North American Chapter of the Association for Computational Linguistics on Human Language TechnologyVol. 1. – Association for Computational Linguistics. –2003. – P. 134-141.
21. Collins M., Koehn P., Kučerová I. Clause restructuring for statistical machine translation // Proceedings of the 43rd annual meeting on association for 89 computational linguistics. – Association for Computational Linguistics. – 2005. – P. 531-540.
22. Kaelbling L. P., Littman M. L., Moore A. W. Reinforcement learning: A survey //Journal of artificial intelligence research. – 1996. – Vol. 4. – P. 237-285.
23. Hofmann T. Unsupervised learning by probabilistic latent semantic analysis //Machine learning. – 2001. – Vol. 42. – №. 1-2. – P. 177-196.
24. Goldberg Y. A primer on neural network models for natural language processing //Journal of Artificial Intelligence Research. – 2016. – Vol. 57. – P. 345-420.
25. Jozefowicz R. et al. Exploring the limits of language modeling //arXiv preprint arXiv:1602.02410. – 2016.