Reid  Rohan

Reid Rohan

1661858580

Sentiment: AFINN-based Sentiment analysis for Node.js

sentiment

AFINN-based sentiment analysis for Node.js

Sentiment is a Node.js module that uses the AFINN-165 wordlist and Emoji Sentiment Ranking to perform sentiment analysis on arbitrary blocks of input text. Sentiment provides several things:

  • Performance (see benchmarks below)
  • The ability to append and overwrite word / value pairs from the AFINN wordlist
  • The ability to easily add support for new languages
  • The ability to easily define custom strategies for negation, emphasis, etc. on a per-language basis

Installation

npm install sentiment

Usage example

var Sentiment = require('sentiment');
var sentiment = new Sentiment();
var result = sentiment.analyze('Cats are stupid.');
console.dir(result);    // Score: -2, Comparative: -0.666

Adding new languages

You can add support for a new language by registering it using the registerLanguage method:

var frLanguage = {
  labels: { 'stupide': -2 }
};
sentiment.registerLanguage('fr', frLanguage);

var result = sentiment.analyze('Le chat est stupide.', { language: 'fr' });
console.dir(result);    // Score: -2, Comparative: -0.5

You can also define custom scoring strategies to handle things like negation and emphasis on a per-language basis:

var frLanguage = {
  labels: { 'stupide': -2 },
  scoringStrategy: {
    apply: function(tokens, cursor, tokenScore) {
      if (cursor > 0) {
        var prevtoken = tokens[cursor - 1];
        if (prevtoken === 'pas') {
          tokenScore = -tokenScore;
        }
      }
      return tokenScore;
    }
  }
};
sentiment.registerLanguage('fr', frLanguage);

var result = sentiment.analyze('Le chat n\'est pas stupide', { language: 'fr' });
console.dir(result);    // Score: 2, Comparative: 0.4

Adding and overwriting words

You can append and/or overwrite values from AFINN by simply injecting key/value pairs into a sentiment method call:

var options = {
  extras: {
    'cats': 5,
    'amazing': 2
  }
};
var result = sentiment.analyze('Cats are totally amazing!', options);
console.dir(result);    // Score: 7, Comparative: 1.75

API Reference

var sentiment = new Sentiment([options])

ArgumentTypeRequiredDescription
optionsobjectfalseConfiguration options (no options supported currently)

sentiment.analyze(phrase, [options], [callback])

ArgumentTypeRequiredDescription
phrasestringtrueInput phrase to analyze
optionsobjectfalseOptions (see below)
callbackfunctionfalseIf specified, the result is returned using this callback function

options object properties:

PropertyTypeDefaultDescription
languagestring'en'Language to use for sentiment analysis
extrasobject{}Set of labels and their associated values to add or overwrite

sentiment.registerLanguage(languageCode, language)

ArgumentTypeRequiredDescription
languageCodestringtrueInternational two-digit code for the language to add
languageobjecttrueLanguage module (see Adding new languages)

How it works

AFINN

AFINN is a list of words rated for valence with an integer between minus five (negative) and plus five (positive). Sentiment analysis is performed by cross-checking the string tokens (words, emojis) with the AFINN list and getting their respective scores. The comparative score is simply: sum of each token / number of tokens. So for example let's take the following:

I love cats, but I am allergic to them.

That string results in the following:

{
    score: 1,
    comparative: 0.1111111111111111,
    calculation: [ { allergic: -2 }, { love: 3 } ],
    tokens: [
        'i',
        'love',
        'cats',
        'but',
        'i',
        'am',
        'allergic',
        'to',
        'them'
    ],
    words: [
        'allergic',
        'love'
    ],
    positive: [
        'love'
    ],
    negative: [
        'allergic'
    ]
}
  • Returned Objects
    • Score: Score calculated by adding the sentiment values of recognized words.
    • Comparative: Comparative score of the input string.
    • Calculation: An array of words that have a negative or positive valence with their respective AFINN score.
    • Token: All the tokens like words or emojis found in the input string.
    • Words: List of words from input string that were found in AFINN list.
    • Positive: List of positive words in input string that were found in AFINN list.
    • Negative: List of negative words in input string that were found in AFINN list.

In this case, love has a value of 3, allergic has a value of -2, and the remaining tokens are neutral with a value of 0. Because the string has 9 tokens the resulting comparative score looks like: (3 + -2) / 9 = 0.111111111

This approach leaves you with a mid-point of 0 and the upper and lower bounds are constrained to positive and negative 5 respectively (the same as each token! 😸). For example, let's imagine an incredibly "positive" string with 200 tokens and where each token has an AFINN score of 5. Our resulting comparative score would look like this:

(max positive score * number of tokens) / number of tokens
(5 * 200) / 200 = 5

Tokenization

Tokenization works by splitting the lines of input string, then removing the special characters, and finally splitting it using spaces. This is used to get list of words in the string.


Benchmarks

A primary motivation for designing sentiment was performance. As such, it includes a benchmark script within the test directory that compares it against the Sentimental module which provides a nearly equivalent interface and approach. Based on these benchmarks, running on a MacBook Pro with Node v6.9.1, sentiment is nearly twice as fast as alternative implementations:

sentiment (Latest) x 861,312 ops/sec ±0.87% (89 runs sampled)
Sentimental (1.0.1) x 451,066 ops/sec ±0.99% (92 runs sampled)

To run the benchmarks yourself:

npm run test:benchmark

Validation

While the accuracy provided by AFINN is quite good considering it's computational performance (see above) there is always room for improvement. Therefore the sentiment module is open to accepting PRs which modify or amend the AFINN / Emoji datasets or implementation given that they improve accuracy and maintain similar performance characteristics. In order to establish this, we test the sentiment module against three labelled datasets provided by UCI.

To run the validation tests yourself:

npm run test:validate

Rand Accuracy

Amazon:  0.726
IMDB:    0.765
Yelp:    0.696

Testing

npm test

Download Details:

Author: Thisandagain
Source Code: https://github.com/thisandagain/sentiment 
License: MIT license

#javascript #nlp #analysis #node 

Sentiment: AFINN-based Sentiment analysis for Node.js
Vicenta  Hauck

Vicenta Hauck

1661312100

How to N-gram Language Modeling in Natural Language Processing

N-gram is a sequence of n words in the modeling of Natural Language Processing (NLP). How can this technique be useful in language modeling?

Source: https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

How to N-gram Language Modeling in Natural Language Processing
Thai  Son

Thai Son

1661304840

Cách Lập Mô Hình Ngôn Ngữ N-gram Trong Natural Language Processing

N-gram là một chuỗi gồm n từ trong mô hình NLP. Làm thế nào kỹ thuật này có thể hữu ích trong mô hình ngôn ngữ?

Giới thiệu

Mô hình ngôn ngữ được sử dụng để xác định xác suất của trình tự của từ. Mô hình này có một số lượng lớn các ứng dụng như nhận dạng giọng nói, lọc thư rác, v.v. [1].

Xử lý ngôn ngữ tự nhiên (NLP)

Xử lý ngôn ngữ tự nhiên (NLP) là sự hội tụ của trí tuệ nhân tạo (AI) và ngôn ngữ học. Nó được sử dụng để làm cho máy tính hiểu các từ hoặc câu lệnh được viết bằng ngôn ngữ của con người. NLP đã được phát triển để làm cho công việc và giao tiếp với máy tính trở nên dễ dàng và hài lòng. Vì tất cả những người sử dụng máy tính không thể biết rõ bằng các ngôn ngữ cụ thể của máy móc nên NLP hoạt động tốt hơn với những người dùng không thể có thời gian học các ngôn ngữ mới của máy móc. Chúng ta có thể định nghĩa ngôn ngữ như một tập hợp các quy tắc hoặc ký hiệu. Các ký hiệu được kết hợp để truyền tải thông tin. Họ bị chuyên chế bởi bộ quy tắc. NLP được phân loại thành hai phần là hiểu ngôn ngữ tự nhiên và tạo ngôn ngữ tự nhiên, giúp phát triển các nhiệm vụ để hiểu và tạo ra văn bản.
 

Phân loại NLP
Hình 1 Các phân loại NLP

Phương pháp mô hình hóa ngôn ngữ

Các mô hình ngôn ngữ được phân loại như sau:

Mô hình ngôn ngữ thống kê : Trong mô hình này, có sự phát triển của các mô hình xác suất. Mô hình xác suất này dự đoán từ tiếp theo trong một chuỗi. Ví dụ mô hình ngôn ngữ N-gram. Mô hình này có thể được sử dụng để phân biệt đầu vào. Chúng có thể được sử dụng để lựa chọn một giải pháp khả thi. Mô hình này phụ thuộc vào lý thuyết xác suất. Xác suất là dự đoán khả năng một điều gì đó sẽ xảy ra.

Mô hình ngôn ngữ thần kinh: Lập mô hình ngôn ngữ thần kinh cho kết quả tốt hơn so với các phương pháp cổ điển đối với cả các mô hình độc lập và khi các mô hình được kết hợp vào các mô hình lớn hơn trong các nhiệm vụ khó khăn, tức là nhận dạng giọng nói và dịch máy. Một phương pháp thực hiện mô hình ngôn ngữ thần kinh là nhúng từ [1].

Mô hình hóa N-gram trong NLP

N-gram là một chuỗi gồm N từ trong mô hình NLP. Hãy xem xét một ví dụ về câu lệnh để lập mô hình. “Tôi thích đọc sách lịch sử và xem phim tài liệu”. Trong một gam hoặc đơn ký tự, có một chuỗi một từ. Đối với câu trên, trong một gam nó có thể là “tôi”, “tình yêu”, “lịch sử”, “sách”, “và”, “xem”, “phim tài liệu”. Trong hai gam hoặc hai gam, có một chuỗi hai từ, nghĩa là “Tôi yêu”, “thích đọc” hoặc “sách lịch sử”. Trong ba gam hoặc ba gam, có ba chuỗi từ tức là “Tôi thích đọc”, “sách lịch sử” hoặc “và xem phim tài liệu” [3]. Hình minh họa của mô hình N-gram tức là cho N = 1,2,3 được đưa ra dưới đây trong Hình 2 [5].

Mô hình Uni-gram, Bi-gram và Tri-gram
Hình 2 Mô hình Uni-gram, Bi-gram và Tri-gram

Đối với N-1 từ, mô hình N-gram dự đoán hầu hết các từ xuất hiện có thể theo trình tự. Mô hình là mô hình ngôn ngữ xác suất được đào tạo trên bộ sưu tập văn bản. Mô hình này hữu ích trong các ứng dụng như nhận dạng giọng nói và dịch máy. Một mô hình đơn giản có một số hạn chế có thể được cải thiện bằng cách làm mịn, nội suy và lùi lại. Vì vậy, mô hình ngôn ngữ N-gram là về việc tìm kiếm phân bố xác suất trên các trình tự của từ. Hãy xem xét các câu tức là "Có mưa to" và "Có lũ lớn". Bằng kinh nghiệm sử dụng, có thể nói câu đầu tiên là tốt. Mô hình ngôn ngữ N-gram cho biết rằng "mưa lớn" xảy ra thường xuyên hơn "lũ lớn". Vì thế, câu lệnh đầu tiên có nhiều khả năng xảy ra hơn và sau đó nó sẽ được lựa chọn bởi mô hình này. Trong mô hình một gam, mô hình thường dựa vào đó từ nào xuất hiện thường xuyên mà không cần cân nhắc các từ trước đó. Trong 2 gam, chỉ từ trước đó được xem xét để dự đoán từ hiện tại. Trong 3 gam, hai từ trước đó được coi là. Trong mô hình ngôn ngữ N-gram, các xác suất sau được tính:

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

Vì không thực tế khi tính toán xác suất có điều kiện nhưng bằng cách sử dụng " Các giả định Markov" , điều này được gần đúng với mô hình bi-gram là [4]:

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

Các ứng dụng của Mô hình N-gram trong NLP

Trong nhận dạng giọng nói, đầu vào có thể bị nhiễu. Tiếng ồn này có thể tạo ra một lời nói sai đối với việc chuyển đổi văn bản. Mô hình ngôn ngữ N-gram sửa lỗi nhiễu bằng cách sử dụng kiến ​​thức xác suất. Tương tự như vậy, mô hình này được sử dụng trong các bản dịch máy để tạo ra các câu lệnh tự nhiên hơn trong các ngôn ngữ đích và được chỉ định. Để sửa lỗi chính tả, đôi khi từ điển là vô dụng. Ví dụ: "trong khoảng mười lăm phút" 'minuets' là một từ hợp lệ theo từ điển nhưng nó không chính xác trong cụm từ. Mô hình ngôn ngữ N-gram có thể khắc phục loại lỗi này.

Mô hình ngôn ngữ N-gram nói chung là ở các cấp độ từ. Nó cũng được sử dụng ở các cấp độ ký tự để thực hiện việc tách gốc, tức là để tách các từ gốc khỏi một hậu tố. Bằng cách nhìn vào mô hình N-gram, các ngôn ngữ có thể được phân loại hoặc phân biệt giữa cách viết của Hoa Kỳ và Vương quốc Anh. Nhiều ứng dụng nhận được lợi ích từ mô hình N-gram bao gồm gắn thẻ một phần của bài phát biểu, các thế hệ ngôn ngữ tự nhiên, các điểm tương đồng từ và chiết xuất tình cảm. [4].

Hạn chế của Mô hình N-gram trong NLP

Mô hình ngôn ngữ N-gram cũng có một số hạn chế. Có một vấn đề với các từ ngoài từ vựng. Những từ này là trong quá trình kiểm tra nhưng không có trong đào tạo. Một giải pháp là sử dụng các từ vựng cố định và sau đó chuyển các từ vựng trong khóa đào tạo sang các từ giả. Khi được triển khai trong phân tích cảm tính, mô hình bi-gram hoạt động tốt hơn mô hình đơn gam nhưng sau đó số lượng các tính năng được tăng gấp đôi. Vì vậy, việc mở rộng mô hình N-gram thành các tập dữ liệu lớn hơn hoặc chuyển sang bậc cao hơn cần các phương pháp lựa chọn tính năng tốt hơn. Mô hình N-gram chụp bối cảnh đường dài kém. Nó đã được hiển thị sau mỗi 6 gam, việc đạt được hiệu suất bị hạn chế. 

Nguồn:  https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

Cách Lập Mô Hình Ngôn Ngữ N-gram Trong Natural Language Processing

Как смоделировать язык N-грамм в Natural Language Processing

N-грамма — это последовательность из n слов в моделировании НЛП. Как этот метод может быть полезен в языковом моделировании?

Введение

Языковое моделирование используется для определения вероятности последовательности слов. Это моделирование имеет большое количество приложений, таких как распознавание речи, фильтрация спама и т. д. [1].

Обработка естественного языка (NLP)

Обработка естественного языка (NLP) — это слияние искусственного интеллекта (ИИ) и лингвистики. Он используется для того, чтобы компьютеры понимали слова или утверждения, написанные на человеческом языке. НЛП было разработано для того, чтобы сделать работу и общение с компьютером легкими и приятными. Поскольку все пользователи компьютеров не могут быть хорошо знакомы с конкретными языками машин, НЛП лучше работает с пользователями, у которых нет времени на изучение новых языков машин. Мы можем определить язык как набор правил или символов. Символы объединяются для передачи информации. Они тиранизированы набором правил. НЛП подразделяется на две части: понимание естественного языка и генерация естественного языка, которые развивают задачи для понимания и создания текста.
 

Классификации НЛП
Рис. 1. Классификации НЛП

Методы языкового моделирования

Языковые модели классифицируются следующим образом:

Моделирование статистического языка : в этом моделировании происходит разработка вероятностных моделей. Эта вероятностная модель предсказывает следующее слово в последовательности. Например, моделирование языка N-грамм. Это моделирование можно использовать для устранения неоднозначности ввода. Их можно использовать для выбора вероятного решения. Это моделирование зависит от теории вероятностей. Вероятность — это предсказание вероятности того, что что-то произойдет.

Нейронно-языковое моделирование. Нейронно-языковое моделирование дает лучшие результаты, чем классические методы, как для автономных моделей, так и при включении моделей в более крупные модели для решения сложных задач, таких как распознавание речи и машинный перевод. Одним из методов моделирования нейронного языка является встраивание слов [1].

Моделирование N-грамм в НЛП

N-грамма — это последовательность N-слов в моделировании НЛП. Рассмотрим пример постановки для моделирования. «Я люблю читать книги по истории и смотреть документальные фильмы». В одном грамме или униграмме есть последовательность из одного слова. Что касается приведенного выше высказывания, то в одном грамме это может быть «я», «люблю», «история», «книги», «и», «смотрю», «документальные фильмы». В двухграммах или биграммах есть последовательность из двух слов, т. е. «я люблю», «люблю читать» или «книги по истории». В трехграммах или триграммах есть последовательности из трех слов, т. е. «я люблю читать», «книги по истории» или «и смотреть документальные фильмы» [3]. Иллюстрация моделирования N-грамм, т.е. для N=1,2,3, приведена ниже на рисунке 2 [5].

Модель униграммы, биграммы и триграммы
Рис. 2. Модель униграммы, биграммы и триграммы

Для N-1 слов моделирование N-грамм предсказывает наиболее часто встречающиеся слова, которые могут следовать за последовательностями. Модель представляет собой вероятностную языковую модель, которая обучается на наборе текста. Эта модель полезна в приложениях, таких как распознавание речи и машинный перевод. Простая модель имеет некоторые ограничения, которые можно улучшить за счет сглаживания, интерполяции и отсрочки. Итак, языковая модель N-грамм предназначена для нахождения вероятностных распределений последовательностей слов. Рассмотрим предложения т.е. «Был сильный дождь» и «Было сильное наводнение». По опыту можно сказать, что первое утверждение хорошее. Модель языка N-грамм говорит о том, что «сильный дождь» происходит чаще, чем «сильный паводок». Так, первое утверждение более вероятно, и оно будет выбрано этой моделью. В модели с одним граммом модель обычно опирается на то, какое слово встречается часто, не задумываясь над предыдущими словами. В 2-грамме для предсказания текущего слова учитывается только предыдущее слово. В 3-грамме учитываются два предыдущих слова. В языковой модели N-грамм вычисляются следующие вероятности:

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

Поскольку расчет условной вероятности нецелесообразен, кроме как с использованием « марковских предположений» , это аппроксимируется биграммной моделью как [4]:

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

Применение модели N-грамм в НЛП

При распознавании речи ввод может быть шумным. Этот шум может исказить речь при преобразовании текста. Модель языка N-грамм исправляет шум, используя знание вероятности. Точно так же эта модель используется в машинных переводах для создания более естественных утверждений на целевом и заданных языках. Для исправления орфографических ошибок словарь иногда бесполезен. Например, «примерно через пятнадцать минут» «менуэт» является допустимым словом в соответствии со словарем, но неверным во фразе. Языковая модель N-грамм может исправить этот тип ошибки.

Языковая модель N-грамм обычно находится на уровне слов. Он также используется на уровне символов для определения основы, т. е. для отделения корневых слов от суффикса. Глядя на модель N-грамм, можно классифицировать языки или различать их правописание в США и Великобритании. Многие приложения получают преимущества от модели N-грамм, включая тегирование частей речи, генерацию естественного языка, сходство слов и извлечение тональностей. [4].

Ограничения модели N-грамм в НЛП

Языковая модель N-грамм также имеет некоторые ограничения. Есть проблема со словарными словами. Эти слова во время тестирования, но не в обучении. Одним из решений является использование фиксированного словарного запаса, а затем преобразование словарных слов при обучении в псевдослова. При реализации в анализе настроений модель биграмм превзошла модель униграммы, но количество функций удвоилось. Таким образом, масштабирование модели N-грамм для больших наборов данных или переход к более высокому порядку требует более эффективных подходов к выбору признаков. Модель N-грамм плохо отражает контекст междугородной связи. Было показано, что после каждых 6 грамм прирост производительности ограничен. 

Источник:  https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

Как смоделировать язык N-грамм в Natural Language Processing

如何在 Natural Language Processing 中進行 N-gram 語言建模

N-gram 是 NLP 建模中的 n 個單詞的序列。這種技術如何在語言建模中有用?

介紹

語言建模用於確定單詞序列的概率。這種建模有大量的應用,即語音識別、垃圾郵件過濾等[1]。

自然語言處理 (NLP)

自然語言處理 (NLP) 是人工智能 (AI) 和語言學的融合。它用於使計算機理解用人類語言編寫的單詞或語句。NLP 的開發是為了使與計算機的工作和交流變得容易和令人滿意。由於無法通過機器的特定語言了解所有計算機用戶,因此 NLP 更適合沒有時間學習機器新語言的用戶。我們可以將語言定義為一組規則或符號。符號組合起來傳達信息。他們被一套規則所壓制。NLP 分為自然語言理解和自然語言生成兩部分,自然語言生成演變了理解和生成文本的任務。
 

NLP的分類
圖1 NLP的分類

語言建模方法

語言模型分類如下:

統計語言建模:在這種建模中,有概率模型的發展。該概率模型預測序列中的下一個單詞。例如 N-gram 語言建模。該建模可用於消除輸入的歧義。它們可用於選擇可能的解決方案。這種建模依賴於概率論。概率是預測某事發生的可能性。

神經語言建模:對於獨立模型以及將模型合併到具有挑戰性任務(即語音識別和機器翻譯)的更大模型中時,神經語言建模比經典方法提供更好的結果。執行神經語言建模的一種方法是通過詞嵌入 [1]。

NLP 中的 N-gram 建模

N-gram 是 NLP 建模中的 N 個單詞的序列。考慮一個建模語句的例子。“我喜歡看歷史書和看紀錄片”。在 one-gram 或 unigram 中,有一個單詞序列。至於上面的說法,一克可以是“我”、“愛”、“歷史”、“書”、“和”、“看”、“紀錄片”。在二元或二元中,有兩個詞的序列,即“我愛”、“愛閱讀”或“歷史書”。在三元組或三元組中,有三個單詞序列,即“我喜歡閱讀”、“歷史書籍”或“和看紀錄片”[3]。下面的圖 2 [5] 中給出了 N-gram 建模的說明,即 N=1,2,3。

Uni-gram、Bi-gram 和 Tri-gram 模型
圖 2 Uni-gram、Bi-gram 和 Tri-gram 模型

對於 N-1 個單詞,N-gram 模型會預測最常出現的可以遵循序列的單詞。該模型是在文本集合上訓練的概率語言模型。該模型在語音識別和機器翻譯等應用中很有用。一個簡單的模型有一些限制,可以通過平滑、插值和回退來改進。因此,N-gram 語言模型是關於尋找單詞序列的概率分佈。考慮句子,即“有大雨”和“有大洪水”。通過使用經驗,可以說第一種說法是好的。N-gram 語言模型告訴我們,“大雨”比“大洪水”更頻繁地發生。所以,第一個語句更有可能發生,然後將由該模型選擇。在 one-gram 模型中,該模型通常依賴於哪個詞經常出現,而不考慮前面的詞。在 2-gram 中,只考慮前一個詞來預測當前詞。在 3-gram 中,考慮了之前的兩個單詞。在 N-gram 語言模型中,計算以下概率:

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

由於通過使用“馬爾可夫假設”來計算條件概率是不切實際的,因此將其近似為二元模型 [4]:

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

N-gram 模型在 NLP 中的應用

在語音識別中,輸入可能是嘈雜的。這種噪音會導致錯誤的語音向文本轉換。N-gram 語言模型通過使用概率知識來糾正噪聲。同樣,該模型用於機器翻譯,以在目標語言和指定語言中生成更自然的語句。對於拼寫錯誤更正,字典有時是無用的。例如,根據字典,“大約十五分鐘”“小步舞曲”是一個有效的詞,但在短語中是不正確的。N-gram 語言模型可以糾正這種類型的錯誤。

N-gram 語言模型通常處於單詞級別。它還用於在字符級別進行詞幹提取,即將根詞與後綴分開。通過查看 N-gram 模型,可以在美國和英國的拼寫之間對語言進行分類或區分。許多應用程序都從 N-gram 模型中受益,包括部分語音的標記、自然語言生成、單詞相似性和情感提取。[4]。

NLP 中 N-gram 模型的局限性

N-gram 語言模型也有一些限制。詞彙量不足的單詞存在問題。這些話是在測試期間,而不是在訓練中。一種解決方案是使用固定詞彙,然後將訓練中的詞彙轉換為偽詞。在情感分析中實施時,二元模型的性能優於一元模型,但特徵數量增加了一倍。因此,將 N-gram 模型擴展到更大的數據集或移動到更高階需要更好的特徵選擇方法。N-gram 模型很難捕捉到長距離上下文。每 6 克後顯示,性能增益有限。 

來源:  https ://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

如何在 Natural Language Processing 中進行 N-gram 語言建模
Jarrod  Douglas

Jarrod Douglas

1661281920

Comment Modéliser Le Langage N-gram Dans Natural Language Processing

N-gramme est une séquence de n mots dans la modélisation de la PNL. Comment cette technique peut-elle être utile dans la modélisation du langage ?

Introduction

La modélisation du langage est utilisée pour déterminer la probabilité de la séquence du mot. Cette modélisation a un grand nombre d'applications comme la reconnaissance de la parole, le filtrage des spams, etc. [1].

Traitement du langage naturel (TAL)

Le traitement automatique du langage naturel (TLN) est la convergence de l'intelligence artificielle (IA) et de la linguistique. Il est utilisé pour faire comprendre aux ordinateurs les mots ou les déclarations qui sont écrits dans des langues humaines. NLP a été développé pour rendre le travail et la communication avec l'ordinateur faciles et satisfaisants. Comme tous les utilisateurs d'ordinateurs ne peuvent pas être bien connus par les langages spécifiques des machines, la PNL fonctionne mieux avec les utilisateurs qui n'ont pas le temps d'apprendre les nouveaux langages des machines. Nous pouvons définir le langage comme un ensemble de règles ou de symboles. Les symboles sont combinés pour transmettre l'information. Ils sont tyrannisés par l'ensemble des règles. La PNL est classée en deux parties qui sont la compréhension du langage naturel et la génération du langage naturel qui fait évoluer les tâches de compréhension et de génération du texte.
 

Classifications de la PNL
Figure 1 Classifications de la PNL

Méthodes de modélisation du langage

Les modélisations de langage sont classées comme suit :

Modélisations du langage statistique : Dans cette modélisation, il y a le développement de modèles probabilistes. Ce modèle probabiliste prédit le mot suivant dans une séquence. Par exemple la modélisation du langage N-gram. Cette modélisation peut être utilisée pour désambiguïser l'entrée. Ils peuvent être utilisés pour sélectionner une solution probable. Cette modélisation dépend de la théorie des probabilités. La probabilité consiste à prédire la probabilité que quelque chose se produise.

Modélisations du langage neuronal : La modélisation du langage neuronal donne de meilleurs résultats que les méthodes classiques à la fois pour les modèles autonomes et lorsque les modèles sont incorporés dans des modèles plus grands sur les tâches difficiles, à savoir les reconnaissances vocales et les traductions automatiques. Une méthode d'exécution de la modélisation du langage neuronal est l'incorporation de mots [1].

Modélisation N-gram en PNL

N-gramme est une séquence de N-mots dans la modélisation de la PNL. Considérons un exemple de la déclaration pour la modélisation. "J'adore lire des livres d'histoire et regarder des documentaires". Dans un gramme ou un unigramme, il y a une séquence d'un mot. Quant à la déclaration ci-dessus, dans un gramme, cela peut être "je", "amour", "histoire", "livres", "et", "regarder", "documentaires". Dans deux-grammes ou le bi-gramme, il y a la séquence de deux mots c'est-à-dire « j'aime », « aime lire », ou « livres d'histoire ». Dans le trois-gramme ou le trigramme, il y a les séquences de trois mots c'est-à-dire « j'aime lire », « des livres d'histoire » ou « et regarder des documentaires » [3]. L'illustration de la modélisation N-gramme c'est-à-dire pour N=1,2,3 est donnée ci-dessous dans la Figure 2 [5].

Modèle Uni-gramme, Bi-gramme et Tri-gramme
Figure 2 Modèle Uni-gramme, Bi-gramme et Tri-gramme

Pour N-1 mots, la modélisation N-grammes prédit la plupart des mots survenus qui peuvent suivre les séquences. Le modèle est le modèle de langage probabiliste qui est formé sur la collection du texte. Ce modèle est utile dans des applications telles que la reconnaissance vocale et les traductions automatiques. Un modèle simple présente certaines limites qui peuvent être améliorées par le lissage, les interpolations et le recul. Ainsi, le modèle de langage N-gramme consiste à trouver des distributions de probabilité sur les séquences du mot. Considérez les phrases, c'est-à-dire "Il y a eu de fortes pluies" et "Il y a eu de fortes inondations". En utilisant l'expérience, on peut dire que la première affirmation est bonne. Le modèle de langage N-gram indique que la "forte pluie" se produit plus fréquemment que la "forte inondation". Alors, la première déclaration est plus susceptible de se produire et elle sera alors sélectionnée par ce modèle. Dans le modèle à un gramme, le modèle repose généralement sur le mot qui apparaît souvent sans réfléchir aux mots précédents. En 2 grammes, seul le mot précédent est pris en compte pour prédire le mot courant. En 3 grammes, deux mots précédents sont pris en compte. Dans le modèle de langage N-gram, les probabilités suivantes sont calculées :

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

Comme il n'est pas pratique de calculer la probabilité conditionnelle mais en utilisant les " hypothèses de Markov" , cela est approché du modèle bi-gramme comme [4] :

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

Applications du modèle N-gramme en PNL

En reconnaissance vocale, l'entrée peut être bruyante. Ce bruit peut fausser le discours lors de la conversion du texte. Le modèle de langage N-gram corrige le bruit en utilisant la connaissance des probabilités. De même, ce modèle est utilisé dans les traductions automatiques pour produire des déclarations plus naturelles dans les langues cibles et spécifiées. Pour les corrections de fautes d'orthographe, le dictionnaire est parfois inutile. Par exemple, "dans environ quinze minutes" 'menuets' est un mot valide selon le dictionnaire mais il est incorrect dans la phrase. Le modèle de langage N-gram peut rectifier ce type d'erreur.

Le modèle de langage N-gram est généralement au niveau des mots. Il est également utilisé au niveau des caractères pour faire la racine, c'est-à-dire pour séparer les mots racines d'un suffixe. En regardant le modèle N-gram, les langues peuvent être classées ou différenciées entre les orthographes américaines et britanniques. De nombreuses applications bénéficient du modèle N-gram, notamment le marquage d'une partie du discours, les générations de langage naturel, les similitudes de mots et l'extraction de sentiments. [4].

Limites du modèle N-gramme en PNL

Le modèle de langage N-gram a également quelques limitations. Il y a un problème avec les mots hors vocabulaire. Ces mots sont pendant les tests mais pas dans la formation. Une solution consiste à utiliser le vocabulaire fixe, puis à convertir les mots de vocabulaire de la formation en pseudo-mots. Lorsqu'il est implémenté dans l'analyse des sentiments, le modèle bi-gramme a surpassé le modèle uni-gramme, mais le nombre de caractéristiques est alors doublé. Ainsi, la mise à l'échelle du modèle N-gramme vers des ensembles de données plus grands ou le passage à l'ordre supérieur nécessite de meilleures approches de sélection des fonctionnalités. Le modèle N-gram capture mal le contexte longue distance. Il a été démontré qu'au bout de 6 grammes, le gain de performance est limité. 

Source :  https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

Comment Modéliser Le Langage N-gram Dans Natural Language Processing
Wayne  Richards

Wayne Richards

1661274600

Cómo Modelar El Lenguaje N-gram En Natural Language Processing

N-grama es una secuencia de n palabras en el modelado de PNL. ¿Cómo puede ser útil esta técnica en el modelado del lenguaje?

Introducción

El modelado del lenguaje se utiliza para determinar la probabilidad de la secuencia de la palabra. Este modelado tiene una gran cantidad de aplicaciones, es decir, reconocimiento de voz, filtrado de spam, etc. [1].

Procesamiento del lenguaje natural (PNL)

El procesamiento del lenguaje natural (PNL) es la convergencia de la inteligencia artificial (IA) y la lingüística. Se utiliza para hacer que las computadoras entiendan las palabras o declaraciones que están escritas en lenguajes humanos. La PNL ha sido desarrollada para que el trabajo y la comunicación con el ordenador sean fáciles y satisfactorios. Como todos los usuarios de computadoras no pueden ser bien conocidos por los lenguajes específicos de las máquinas, la PNL funciona mejor con los usuarios que no tienen tiempo para aprender los nuevos lenguajes de las máquinas. Podemos definir el lenguaje como un conjunto de reglas o símbolos. Los símbolos se combinan para transmitir la información. Están tiranizados por el conjunto de reglas. La PNL se clasifica en dos partes que son la comprensión del lenguaje natural y la generación del lenguaje natural, que desarrolla las tareas para comprender y generar el texto.
 

Clasificaciones de la PNL
Figura 1 Clasificaciones de la PNL

Métodos del Modelado del Lenguaje

Los modelos de lenguaje se clasifican de la siguiente manera:

Modelaciones de lenguaje estadístico : En esta modelación, se encuentra el desarrollo de modelos probabilísticos. Este modelo probabilístico predice la siguiente palabra en una secuencia. Por ejemplo, modelado de lenguaje N-gram. Este modelado se puede utilizar para eliminar la ambigüedad de la entrada. Se pueden utilizar para seleccionar una solución probable. Este modelado depende de la teoría de la probabilidad. La probabilidad es predecir la probabilidad de que ocurra algo.

Modelado de lenguaje neuronal: el modelado de lenguaje neuronal brinda mejores resultados que los métodos clásicos tanto para los modelos independientes como cuando los modelos se incorporan a los modelos más grandes en las tareas desafiantes, es decir, reconocimientos de voz y traducciones automáticas. Un método para realizar el modelado del lenguaje neuronal es mediante la incrustación de palabras [1].

Modelado de N-gramas en PNL

N-grama es una secuencia de N-palabras en el modelado de PNL. Considere un ejemplo de la declaración para el modelado. “Me encanta leer libros de historia y ver documentales”. En un gramo o unigrama, hay una secuencia de una palabra. En cuanto a la declaración anterior, en un gramo puede ser "yo", "amor", "historia", "libros", "y", "ver", "documentales". En dos gramos o bigramas, hay una secuencia de dos palabras, es decir, "Me encanta", "Me encanta leer" o "Libros de historia". En el tres-grama o el tri-grama, hay secuencias de tres palabras, es decir, "Me encanta leer", "libros de historia" o "y ver documentales" [3]. La ilustración del modelado de N-gramas, es decir, para N=1,2,3, se muestra a continuación en la Figura 2 [5].

Modelo de unigrama, bigrama y trigrama
Figura 2 Modelo de unigrama, bigrama y trigrama

Para N-1 palabras, el modelo N-grama predice la mayoría de las palabras que pueden seguir las secuencias. El modelo es el modelo de lenguaje probabilístico que se entrena en la recopilación del texto. Este modelo es útil en aplicaciones, por ejemplo, reconocimiento de voz y traducción automática. Un modelo simple tiene algunas limitaciones que se pueden mejorar suavizando, interpolando y retrocediendo. Entonces, el modelo de lenguaje N-grama se trata de encontrar distribuciones de probabilidad sobre las secuencias de la palabra. Considere las oraciones, es decir, "Hubo fuertes lluvias" y "Hubo fuertes inundaciones". Usando la experiencia, se puede decir que la primera afirmación es buena. El modelo de lenguaje N-gram dice que la "lluvia intensa" ocurre con más frecuencia que la "inundación intensa". Asi que, la primera declaración es más probable que ocurra y luego será seleccionada por este modelo. En el modelo de un gramo, el modelo generalmente se basa en la palabra que ocurre a menudo sin tener en cuenta las palabras anteriores. En 2 gramos, solo se considera la palabra anterior para predecir la palabra actual. En 3-gram, se consideran dos palabras anteriores. En el modelo de lenguaje N-gram se calculan las siguientes probabilidades:

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

Como no es práctico calcular la probabilidad condicional sino usando los “ Supuestos de Markov” , esto se aproxima al modelo de bi-grama como [4]:

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

Aplicaciones del Modelo N-gram en PNL

En el reconocimiento de voz, la entrada puede ser ruidosa. Este ruido puede generar un discurso incorrecto en la conversión de texto. El modelo de lenguaje N-gram corrige el ruido usando conocimiento de probabilidad. Asimismo, este modelo se utiliza en traducciones automáticas para producir declaraciones más naturales en idiomas específicos y de destino. Para las correcciones de errores ortográficos, el diccionario es inútil a veces. Por ejemplo, "en unos quince minutos" 'minuetos' es una palabra válida según el diccionario pero es incorrecta en la frase. El modelo de lenguaje N-gram puede corregir este tipo de error.

El modelo de lenguaje N-grama generalmente está en los niveles de palabra. También se utiliza en los niveles de caracteres para realizar la lematización, es decir, para separar las palabras raíz de un sufijo. Al observar el modelo N-gram, los idiomas se pueden clasificar o diferenciar entre las ortografías de los EE. UU. y el Reino Unido. Muchas aplicaciones se benefician del modelo N-gram, incluido el etiquetado de parte del discurso, las generaciones de lenguaje natural, las similitudes de palabras y la extracción de sentimientos. [4].

Limitaciones del modelo N-gram en PNL

El modelo de lenguaje N-gram también tiene algunas limitaciones. Hay un problema con las palabras fuera de vocabulario. Estas palabras son durante la prueba pero no en el entrenamiento. Una solución es usar el vocabulario fijo y luego convertir las palabras del vocabulario en el entrenamiento en pseudopalabras. Cuando se implementó en el análisis de sentimiento, el modelo de bigrama superó al modelo de unigrama, pero el número de funciones se duplicó. Por lo tanto, la escala del modelo de N-gramas a los conjuntos de datos más grandes o pasar al orden superior necesita mejores enfoques de selección de características. El modelo N-gram captura pobremente el contexto de larga distancia. Se ha demostrado que después de cada 6 gramos, la ganancia de rendimiento es limitada. 

Fuente:  https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

Cómo Modelar El Lenguaje N-gram En Natural Language Processing

Como Modelar A Linguagem N-gram No Natural Language Processing

N-gram é uma sequência de n palavras na modelagem da PNL. Como essa técnica pode ser útil na modelagem de linguagem?

Introdução

A modelagem de linguagem é usada para determinar a probabilidade da sequência da palavra. Esta modelagem tem um grande número de aplicações, ou seja, reconhecimento de voz, filtragem de spam, etc. [1].

Processamento de linguagem natural (PLN)

O processamento de linguagem natural (PLN) é a convergência da inteligência artificial (IA) e da linguística. Ele é usado para fazer os computadores entenderem as palavras ou declarações que são escritas em idiomas humanos. A PNL foi desenvolvida para tornar o trabalho e a comunicação com o computador fácil e satisfatório. Como nem todos os usuários de computador podem ser bem conhecidos pelas linguagens específicas das máquinas, a PNL funciona melhor com os usuários que não têm tempo para aprender as novas linguagens das máquinas. Podemos definir a linguagem como um conjunto de regras ou símbolos. Os símbolos são combinados para transmitir a informação. Eles são tiranizados pelo conjunto de regras. A PNL é classificada em duas partes que são a compreensão da linguagem natural e a geração da linguagem natural, que envolve as tarefas de compreensão e geração do texto.
 

Classificações da PNL
Figura 1 Classificações da PNL

Métodos da Modelagem da Linguagem

As modelagens de linguagem são classificadas da seguinte forma:

Modelagens de linguagem estatística : Nesta modelagem, há o desenvolvimento de modelos probabilísticos. Este modelo probabilístico prevê a próxima palavra em uma sequência. Por exemplo, modelagem de linguagem N-gram. Essa modelagem pode ser usada para desambiguar a entrada. Eles podem ser usados ​​para selecionar uma solução provável. Essa modelagem depende da teoria da probabilidade. Probabilidade é prever a probabilidade de algo acontecer.

Modelagens de linguagem neural: A modelagem de linguagem neural oferece melhores resultados do que os métodos clássicos tanto para os modelos autônomos quanto quando os modelos são incorporados aos modelos maiores nas tarefas desafiadoras, ou seja, reconhecimento de fala e traduções automáticas. Um método de realizar a modelagem de linguagem neural é por incorporação de palavras [1].

Modelagem N-gram em PNL

N-gram é uma sequência das N-palavras na modelagem da PNL. Considere um exemplo da declaração para modelagem. “Adoro ler livros de história e assistir documentários”. Em um grama ou unigrama, há uma sequência de uma palavra. Quanto à afirmação acima, em um grama pode ser “eu”, “amor”, “história”, “livros”, “e”, “assistindo”, “documentários”. No two-gram ou no bi-gram, há a sequência de duas palavras, ou seja, “eu amo”, “amo ler” ou “livros de história”. No trigrama ou trigrama, existem as três sequências de palavras, ou seja, “eu amo ler”, “livros de história” ou “e assistir documentários” [3]. A ilustração da modelagem N-gram, ou seja, para N=1,2,3 é dada abaixo na Figura 2 [5].

Modelo Unigrama, Bigrama e Trigrama
Figura 2 Modelo Unigrama, Bigrama e Trigrama

Para palavras N-1, a modelagem N-gram prevê a maioria das palavras ocorridas que podem seguir as sequências. O modelo é o modelo de linguagem probabilístico que é treinado na coleta do texto. Este modelo é útil em aplicações como reconhecimento de voz e traduções automáticas. Um modelo simples tem algumas limitações que podem ser melhoradas por suavização, interpolações e retrocesso. Assim, o modelo de linguagem N-gram trata de encontrar distribuições de probabilidade sobre as sequências da palavra. Considere as frases, por exemplo, "Houve uma chuva forte" e "Houve uma grande inundação". Usando a experiência, pode-se dizer que a primeira afirmação é boa. O modelo de linguagem N-gram diz que a "chuva forte" ocorre com mais frequência do que a "inundação forte". Então, a primeira afirmação é mais provável de ocorrer e será então selecionada por este modelo. No modelo de um grama, o modelo geralmente se baseia na palavra que ocorre muitas vezes sem ponderar as palavras anteriores. Em 2 gramas, apenas a palavra anterior é considerada para prever a palavra atual. Em 3 gramas, duas palavras anteriores são consideradas. No modelo de linguagem N-gram as seguintes probabilidades são calculadas:

P (“There was heavy rain”) = P (“There”, “was”, “heavy”, “rain”) = P (“There”) P (“was” |“There”) P (“heavy”| “There was”) P (“rain” |“There was heavy”).

Como não é prático calcular a probabilidade condicional, mas usando as “ Suposições de Markov” , isso é aproximado ao modelo bigrama como [4]:

P (“There was heavy rain”) ~ P (“There”) P (“was” |“'There”) P (“heavy” |“was”) P (“rain” |“heavy”)

Aplicações do Modelo N-gram em PNL

No reconhecimento de fala, a entrada pode ser ruidosa. Este ruído pode fazer um discurso errado para a conversão do texto. O modelo de linguagem N-gram corrige o ruído usando conhecimento de probabilidade. Da mesma forma, esse modelo é usado em traduções automáticas para produzir declarações mais naturais em idiomas de destino e especificados. Para correções de erros ortográficos, o dicionário às vezes é inútil. Por exemplo, "em cerca de quinze minutos" 'minuetos' é uma palavra válida de acordo com o dicionário, mas está incorreta na frase. O modelo de linguagem N-gram pode corrigir esse tipo de erro.

O modelo de linguagem N-gram geralmente está nos níveis de palavras. Também é usado nos níveis de caractere para fazer a divisão, ou seja, para separar as palavras-raiz de um sufixo. Observando o modelo N-gram, os idiomas podem ser classificados ou diferenciados entre as grafias dos EUA e do Reino Unido. Muitos aplicativos se beneficiam do modelo N-gram, incluindo marcação de parte da fala, gerações de linguagem natural, semelhanças de palavras e extração de sentimentos. [4].

Limitações do Modelo N-gram na PNL

O modelo de linguagem N-gram também tem algumas limitações. Há um problema com as palavras fora do vocabulário. Essas palavras são durante o teste, mas não no treinamento. Uma solução é usar o vocabulário fixo e depois converter as palavras do vocabulário no treinamento em pseudopalavras. Quando implementado na análise de sentimento, o modelo bigrama superou o modelo unigrama, mas o número de características é dobrado. Portanto, o dimensionamento do modelo N-gram para conjuntos de dados maiores ou a mudança para a ordem superior precisa de melhores abordagens de seleção de recursos. O modelo N-gram captura mal o contexto de longa distância. Foi demonstrado que a cada 6 gramas, o ganho de desempenho é limitado. 

Fonte:  https://www.kdnuggets.com

#ngram #naturallanguageprocessing #nlp 

Como Modelar A Linguagem N-gram No Natural Language Processing

5 лучших библиотек Python для обработки естественного языка

Обработка естественного языка (NLP) — это область, которая находится на пересечении науки о данных и искусственного интеллекта . Он направлен на понимание семантики и коннотаций человеческого языка.

Основное внимание уделяется поиску значимой информации из текста, а следующим шагом является обучение моделей данных на основе полученных сведений. Функции NLP широко используются в анализе текста, классификации текстов, анализе текста, анализе настроений, распознавании речи и машинном переводе.

Все это возможно только потому, что в Python доступен широкий спектр библиотек НЛП . Основная цель всех библиотек состоит в том, чтобы правильно преобразовывать предложения свободного текста в структурированную функцию, а также они должны быть способны эффективно реализовывать новейшие алгоритмы и модели.

Итак, в этой статье мы рассмотрим 5 лучших библиотек и инструментов для естественного языка, которые очень полезны при решении реальных проблем.

Лучшие библиотеки обработки естественного языка для Python

Давайте теперь рассмотрим 5 различных библиотек НЛП, доступных для Python, которые можно использовать для генерации текста и обучения. Вы даже можете использовать их для создания чат-ботов на Python.

1. Инструментарий естественного языка (NLTK)

Это одна из важных библиотек для создания программ Python, которая позволяет нам работать с данными человеческого языка и получать из них ценные сведения.

Он предоставляет простые интерфейсы для более чем 50 корпусов (большой коллекции письменных или устных текстов, которые используются для языковых исследований) и лексических активов, таких как WordNet.

NLTK также помогает настроить библиотеки предварительной обработки текста для маркировки, синтаксического анализа, классификации, выделения корней, токенизации и оболочек семантических рассуждений для библиотек NLP и активного обсуждения в беседе.

NLTK является бесплатным и открытым исходным кодом. Он легко доступен для Windows, Mac OS и Linux. Из-за широкого спектра функций он работает медленно, и иногда его трудно удовлетворить требованиям производственного использования.

Функции NLTK включают тегирование частей речи, извлечение сущностей, токенизацию , синтаксический анализ , семантическое рассуждение, выделение корней и классификацию текста .

Монтаж

pip install nltk

2. Генсим

Gensim — очень популярная библиотека для обработки естественного языка. Он имеет специальную функцию для выявления семантического сходства между двумя документами с помощью моделирования векторного пространства. Его алгоритмы не зависят от памяти в отношении размера корпуса, что означает, что мы можем легко обрабатывать входные данные, превышающие объем ОЗУ.

Он предназначен для «тематического моделирования, индексации документов и поиска сходства для больших корпусов (большой коллекции письменных или устных текстов, которые используются для языковых исследований). Он широко используется в приложениях для анализа данных, генерации текста и приложениях семантического поиска. Это дает нам набор алгоритмов, которые очень важны в работах на естественном языке.

Некоторыми алгоритмами для gensim являются иерархический процесс Дирихле (HDP), случайные проекции (RP), скрытое распределение Дирихле (LDA), латентный семантический анализ (LSA / SVD / LSI) или глубокое обучение word2vec. 

Монтаж

pip install — upgrade gensim

3. Ядро НЛП

Standford CoreNLP содержит группу инструментов технологии человеческого языка. CoreNLP предназначен для того, чтобы сделать использование инструментов семантического анализа фрагмента текста простым и профессиональным. С помощью CoreNLP вы можете извлекать все виды текстовых свойств (например, распознавание именованных объектов, теги частей речи и т. д.) всего несколькими строками кода.  

Поскольку CoreNLP написан на Java, на вашем устройстве должна быть установлена ​​Java. Тем не менее, он предлагает программный интерфейс на многих популярных языках программирования, включая Python. Он включает в себя многочисленные инструменты НЛП Стэндфорда, такие как синтаксический анализатор, анализ настроений, загрузочное изучение шаблонов, распознаватель именованных сущностей (NER) и систему разрешения кореференций, а также пометку части речи (POS) по имени некоторых из них.

Кроме того, CoreNLP поддерживает четыре языка, кроме английского, китайского, немецкого, французского, испанского и арабского.

Монтаж

pip install stanfordnlp

4. СпаСи

SpaCy — это библиотека обработки естественного языка Python с открытым исходным кодом. Он разработан специально для производственного использования для решения реальных проблем и помогает обрабатывать огромное количество текстовых данных. Он оснащен предварительно обученными статистическими моделями и векторами слов, а SpaCy написан на Python в Cython (язык Cython является надмножеством языка Python), поэтому он намного быстрее и эффективнее обрабатывает большой объем текстовых данных. .

Основные функции SpaCy:

  • Он предоставляет многообучаемые преобразователи, такие как BERT.
  • Обеспечивает токенизацию, которая мотивирована лингвистически на более чем 49 языках.
  • Предоставляет такие функции, как классификация текста, сегментация предложений, лемматизация, тегирование частей речи, распознавание именованных сущностей и многое другое.
  • Это намного быстрее, чем другие библиотеки.
  • Он может предварительно обрабатывать текст для глубокого обучения.
  • Он имеет 55 обученных конвейеров на более чем 17 языках.

Установка (вместе с зависимостями)

pip install –U setuptools wheel
pip install –U spacy
python -m spacy download en_core_web_sm

5. Узор

Pattern — чрезвычайно полезная библиотека Python, которую можно использовать для реализации задач обработки естественного языка. Это с открытым исходным кодом и бесплатно для всех. Его можно использовать для NLP, интеллектуального анализа текстов, веб-анализа, сетевого анализа и машинного обучения.

Он поставляется с множеством инструментов для интеллектуального анализа данных (Google, API Википедии, поисковый робот и парсер HTML DOM), NLP (поиск n-грамм, анализ тональности, WordNet, теги частей речи) и ML ( Модель векторного пространства, кластеризация, SVM) и сетевой анализ с центрированием графа и визуализацией.

Это очень мощный инструмент для научной и ненаучной аудитории. Его синтаксис очень прост и понятен, а самое приятное то, что имена функций и параметры выбраны таким образом, что команды не требуют пояснений, а также он служит средой быстрой разработки для веб-разработчиков.

Монтаж

pip install pattern

Вывод

В этой статье мы рассмотрели 5 наиболее часто используемых библиотек Python для обработки естественного языка и обсудили, когда нам нужно использовать какую библиотеку в соответствии с нашими требованиями. Я надеюсь, что вы узнали что-то новое из этого блога, и это окажется лучшим для вашего проекта.

Ссылка: https://www.askpython.com/python/top-python-libraries-for-natural-language-processing

#python #nlp

5 лучших библиотек Python для обработки естественного языка
Thierry  Perret

Thierry Perret

1661174952

Top 5 Des Bibliothèques Python Pour Le Traitement Du Langage Naturel

Le traitement du langage naturel (TAL) est un domaine qui se situe à l'intersection de la science des données et de l'intelligence artificielle . Il vise à comprendre la sémantique et les connotations du langage humain.

Son objectif principal est de trouver des informations significatives à partir du texte et l'étape suivante consiste à former les modèles de données en fonction des informations acquises. Les fonctions NLP sont largement utilisées dans l'exploration de texte, la classification de texte, l'analyse de texte, l'analyse des sentiments, la reconnaissance vocale et la traduction automatique.

Tout cela n'est possible que parce que la large gamme de bibliothèques NLP est disponible en Python. L'objectif fondamental de toutes les bibliothèques est de convertir correctement les phrases de texte libre en une fonctionnalité structurée, elle doit également être capable d'implémenter efficacement les derniers algorithmes et modèles.

Ainsi, dans cet article, nous allons couvrir les 5 meilleures bibliothèques et outils de langage naturel qui sont très utiles pour résoudre des problèmes du monde réel.

Meilleures bibliothèques de traitement du langage naturel pour Python

Explorons maintenant les 5 bibliothèques NLP différentes qui sont disponibles pour Python et peuvent être utilisées pour la génération de texte et la formation. Vous pouvez même les utiliser pour créer des chatbots en Python.

1. Boîte à outils en langage naturel (NLTK)

C'est l'une des bibliothèques importantes pour la construction de programmes Python qui nous permet de travailler avec des données de langage humain et d'en tirer des enseignements.

Il donne des interfaces simples pour plus de 50 corpus (une grande collection de textes écrits ou parlés qui sont utilisés pour la recherche linguistique) et des actifs lexicaux comme WordNet.

NLTK aide également à configurer des bibliothèques de prétraitement de texte pour le balisage, l'analyse, la classification, la radicalisation, la tokenisation et les wrappers de raisonnement sémantique pour les bibliothèques NLP et la discussion de conversation active.

NLTK est gratuit et open-source. Il est facilement accessible pour Windows, Mac OS et Linux. En raison du large éventail de fonctionnalités, il est lent et il est parfois difficile de répondre à la demande d'utilisation en production.

Les fonctionnalités de NLTK incluent le balisage des parties de la parole, l'extraction d'entités, la tokenisation , l' analyse syntaxique , le raisonnement sémantique, la radicalisation et la classification de texte .

Installation

pip install nltk

2. Gensim

Gensim est une bibliothèque très populaire pour les travaux de traitement du langage naturel. Il a une particularité pour identifier les similitudes sémantiques entre deux documents par l'utilisation de la modélisation de l'espace vectoriel. Ses algorithmes sont indépendants de la mémoire concernant la taille du corpus, ce qui implique que nous pouvons facilement traiter l'entrée plus grande que la RAM.

Il est conçu pour « la modélisation de sujets, l'indexation de documents et la recherche de similarités pour de grands corpus (une grande collection de textes écrits ou parlés qui sont utilisés pour la recherche linguistique). Il est largement utilisé dans l'analyse de données, les applications de génération de texte et les applications de recherche sémantique. Cela nous donne l'ensemble des algorithmes qui sont très importants dans les travaux en langage naturel.

Certains algorithmes pour les gensim sont Hierarchical Dirichlet Process (HDP), Random Projections (RP), Latent Dirichlet Allocation (LDA), Latent Semantic Analysis (LSA/SVD/LSI) ou word2vec deep learning. 

Installation

pip install — upgrade gensim

3. Noyau NLP

Standford CoreNLP contient un groupe d'outils technologiques de langage humain. CoreNLP est destiné à rendre l'utilisation d'outils d'analyse sémantique simple et efficace pour un morceau de texte. Avec l'aide de CoreNLP, vous pouvez extraire toutes sortes de propriétés de texte (comme la reconnaissance d'entité nommée, le balisage de partie de discours, etc.) avec seulement quelques lignes de code.  

Étant donné que CoreNLP est écrit en Java, il nécessite l'installation de Java sur votre appareil. Cependant, il offre une interface de programmation dans de nombreux langages de programmation populaires, notamment Python. Il intègre de nombreux outils de PNL de Standford tels que l'analyseur, l'analyse des sentiments, l'apprentissage de modèles amorcé, le système de reconnaissance d'entités nommées (NER) et le système de résolution de coréférence, le tagger de partie du discours (POS) pour le nom de quelques-uns.

De plus, Corenlp soutient quatre langues en dehors de l'anglais, du chinois, de l'allemand, du français, de l'espagnol et de l'arabe.

Installation

pip install stanfordnlp

4. SpaCy

SpaCy est une bibliothèque de traitement de langage naturel Python open-source. Il est conçu explicitement pour une utilisation en production afin de résoudre des problèmes réels et il aide à gérer un grand nombre de données textuelles. Il est équipé de modèles statistiques pré-entraînés et de vecteurs de mots et SpaCy est écrit en python en Cython (Le langage Cython est un sur-ensemble du langage Python) c'est pourquoi il est beaucoup plus rapide et efficace pour gérer une grande quantité de données textuelles .

Les principales fonctionnalités de SpaCy sont :

  • Il fournit des transformateurs multi-formés comme BERT.
  • Fournit une tokenisation motivée linguistiquement dans plus de 49 langues.
  • Fournit des fonctionnalités telles que la classification de texte, la segmentation des phrases, la lemmatisation, le marquage des parties du discours, la reconnaissance des entités nommées et bien d'autres.
  • C'est beaucoup plus rapide que les autres bibliothèques.
  • Il peut prétraiter le texte pour Deep Learning.
  • Il compte 55 pipelines formés dans plus de 17 langues.

Installation (avec dépendances)

pip install –U setuptools wheel
pip install –U spacy
python -m spacy download en_core_web_sm

5. Motif

Pattern est une bibliothèque extrêmement utile en Python, qui peut être utilisée pour implémenter des tâches de traitement du langage naturel. Il est open-source et gratuit pour tout le monde. Il peut être utilisé pour la PNL, l'exploration de texte, l'exploration Web, l'analyse de réseau et l'apprentissage automatique.

Il est livré avec une multitude d'outils pour l'exploration de données (Google, l'API Wikipedia, un robot d'exploration Web et un analyseur HTML DOM), NLP (recherche n-gram, analyse des sentiments, WordNet, balises de partie de discours) et ML ( Modèle d'espace vectoriel, clustering, SVM) et analyse de réseau avec centralité et visualisation des graphes.

C'est un outil très puissant pour un public scientifique et non scientifique. Sa syntaxe est très simple et claire et la meilleure partie est que les noms et les paramètres des fonctions sont choisis de manière à ce que les commandes soient explicites. Il sert également de cadre de développement rapide pour les développeurs Web.

Installation

pip install pattern

Conclusion

Dans cet article, nous avons passé en revue les 5 bibliothèques Python les plus couramment utilisées pour le traitement du langage naturel et nous avons discuté du moment où nous devons utiliser quelle bibliothèque selon nos besoins. J'espère que vous apprendrez quelque chose de ce blog et qu'il se révélera le meilleur pour votre projet.

Lien : https://www.askpython.com/python/top-python-libraries-for-natural-language-processing

#python #nlp

Top 5 Des Bibliothèques Python Pour Le Traitement Du Langage Naturel
Hans  Marvin

Hans Marvin

1661167635

5 Best Python Libraries for Natural Language Processing (NLP)

Natural language processing (NLP) is a field that is an intersection of Data Science and Artificial Intelligence. It aims to understand the semantics and connotations of human language.

Its primary focus is on finding meaningful information from the text and the next step is to train the data models based on the acquired insights. NLP functions are widely used in text mining, text classification, text analysis, sentiment analysis, speech recognition, and machine translation.

This is all possible only because the wide range of NLP libraries are available in Python. The basic aim of all the libraries is to convert free text sentences into a structured feature correctly, also it must be able to implement the latest algorithms and models efficiently.

So, in this article, we are going to cover the top 5 natural language libraries and tools that are very useful in solving real-world problems.

See more at: https://www.askpython.com/python/top-python-libraries-for-natural-language-processing

#python #nlp

5 Best Python Libraries for Natural Language Processing (NLP)
Minh  Nguyet

Minh Nguyet

1661160360

5 Thư Viện Python Tốt Nhất để Xử Lý Ngôn Ngữ Tự Nhiên (NLP)

Xử lý ngôn ngữ tự nhiên (NLP) là một lĩnh vực là giao điểm của khoa học dữ liệutrí tuệ nhân tạo . Nó nhằm mục đích hiểu ngữ nghĩa và nội hàm của ngôn ngữ con người.

Trọng tâm chính của nó là tìm kiếm thông tin có ý nghĩa từ văn bản và bước tiếp theo là đào tạo các mô hình dữ liệu dựa trên những hiểu biết có được. Các hàm NLP được sử dụng rộng rãi trong khai thác văn bản, phân loại văn bản, phân tích văn bản, phân tích tình cảm, nhận dạng giọng nói và dịch máy.

Điều này chỉ có thể vì phạm vi rộng của các thư viện NLP có sẵn trong Python. Mục đích cơ bản của tất cả các thư viện là chuyển đổi các câu văn bản tự do thành một tính năng có cấu trúc một cách chính xác, đồng thời nó cũng phải có khả năng triển khai các thuật toán và mô hình mới nhất một cách hiệu quả.

Vì vậy, trong bài viết này, chúng tôi sẽ bao gồm 5 thư viện và công cụ ngôn ngữ tự nhiên hàng đầu rất hữu ích trong việc giải quyết các vấn đề trong thế giới thực.

Cũng đọc: Các thư viện Máy học hàng đầu cho Python

Thư viện xử lý ngôn ngữ tự nhiên hàng đầu cho Python

Bây giờ chúng ta hãy khám phá 5 thư viện NLP khác nhau có sẵn cho Python và có thể được sử dụng để tạo văn bản và đào tạo. Bạn thậm chí có thể sử dụng chúng để tạo chatbots bằng Python.

1. Bộ công cụ ngôn ngữ tự nhiên (NLTK)

Đây là một trong những thư viện quan trọng để xây dựng các chương trình Python cho phép chúng tôi làm việc với dữ liệu ngôn ngữ của con người và nhận được những hiểu biết sâu sắc từ nó.

Nó cung cấp các giao diện đơn giản cho hơn 50 Corpora (một bộ sưu tập lớn các văn bản được viết hoặc nói được sử dụng cho nghiên cứu ngôn ngữ) và các tài sản từ vựng như WordNet.

NLTK cũng giúp thiết lập các thư viện xử lý trước văn bản để gắn thẻ, phân tích cú pháp, phân loại, xuất phát, mã thông báo và bao bọc lý luận ngữ nghĩa cho thư viện NLP và thảo luận cuộc trò chuyện tích cực.

NLTK là miễn phí và nguồn mở. Nó dễ dàng truy cập cho Windows, Mac OS và Linux. Do phạm vi chức năng rộng, nó chậm và đôi khi rất khó để phù hợp với nhu cầu sử dụng sản xuất.

Các tính năng của NLTK bao gồm Các phần của gắn thẻ giọng nói, Trích xuất thực thể, Mã hóa , Phân tích cú pháp , Lập luận ngữ nghĩa, Lập trìnhphân loại văn bản .

Cài đặt

pip install nltk

2. Gensim

Gensim là một thư viện rất phổ biến cho các tác phẩm xử lý ngôn ngữ tự nhiên. Nó có một tính năng đặc biệt để xác định sự tương đồng về ngữ nghĩa giữa hai tài liệu bằng cách sử dụng mô hình không gian vectơ. Các thuật toán của nó là phụ thuộc vào bộ nhớ liên quan đến kích thước kho văn bản, ngụ ý rằng chúng ta có thể dễ dàng xử lý đầu vào lớn hơn RAM.

Nó được thiết kế để mô hình hóa chủ đề, lập chỉ mục tài liệu và truy xuất tương tự cho các tập đoàn lớn (một bộ sưu tập lớn các văn bản viết hoặc nói được sử dụng cho nghiên cứu ngôn ngữ). Nó được sử dụng rộng rãi trong phân tích dữ liệu, ứng dụng tạo văn bản và các ứng dụng tìm kiếm ngữ nghĩa. Nó cung cấp cho chúng ta tập hợp các thuật toán rất quan trọng trong các tác phẩm ngôn ngữ tự nhiên.

Một số thuật toán cho GENSIM là Quy trình Dirichlet phân cấp (HDP), Dự báo ngẫu nhiên (RP), Phân bổ Dirichlet tiềm ẩn (LDA), Phân tích ngữ nghĩa tiềm ẩn (LSA/SVD/LSI) hoặc học sâu Word2VEC. 

Cài đặt

pip install — upgrade gensim

3. CoreNLP

Standford CoreNLP chứa một nhóm các công cụ công nghệ ngôn ngữ của con người. Corenlp có nghĩa là để sử dụng các công cụ phân tích ngữ nghĩa cho một phần văn bản đơn giản và thành thạo. Với sự trợ giúp của CorenLP, bạn có thể trích xuất tất cả các loại thuộc tính văn bản (như nhận dạng thực thể được đặt tên, gắn thẻ phần giọng nói, v.v.) chỉ với một vài dòng mã.  

Vì CorenLP được viết bằng Java, nó yêu cầu Java phải được cài đặt trên thiết bị của bạn. Tuy nhiên, nó cung cấp một giao diện lập trình trong nhiều ngôn ngữ lập trình phổ biến bao gồm cả Python. Nó kết hợp nhiều công cụ NLP của Standford như trình phân tích cú pháp, phân tích tình cảm, học mô hình bootstrapping, được đặt tên là trình nhận dạng thực thể (NER) và hệ thống độ phân giải cốt lõi, người gắn thẻ phần nói (POS).

Hơn nữa, CorenLP hỗ trợ bốn ngôn ngữ ngoài tiếng Anh, tiếng Trung, tiếng Đức, tiếng Pháp, tiếng Tây Ban Nha và tiếng Ả Rập.

Cài đặt

pip install stanfordnlp

4. SpaCy

Spacy là một thư viện xử lý ngôn ngữ tự nhiên Python nguồn mở. Nó được thiết kế rõ ràng để sử dụng sản xuất để giải quyết các vấn đề trong thế giới thực và nó giúp xử lý một số lượng lớn dữ liệu văn bản. Nó được trang bị các mô hình thống kê và vectơ từ được đào tạo trước và SpaCy được viết bằng python trong Cython (Ngôn ngữ Cython là một tập hợp siêu ngôn ngữ Python), đó là lý do tại sao xử lý một lượng lớn dữ liệu văn bản nhanh hơn và hiệu quả hơn nhiều. .

Các tính năng hàng đầu của Spacy là:

  • Nó cung cấp các máy biến áp đa được đào tạo như Bert.
  • Cung cấp mã hóa được thúc đẩy bằng ngôn ngữ trong hơn 49 ngôn ngữ.
  • Cung cấp các chức năng như phân loại văn bản, phân đoạn câu, lemmatization, gắn thẻ phần giọng nói, nhận dạng thực thể được đặt tên và nhiều hơn nữa.
  • Nó nhanh hơn các thư viện khác.
  • Nó có thể tiền xử lý văn bản để học sâu.
  • Nó có 55 đường ống được đào tạo bằng hơn 17 ngôn ngữ.

Cài đặt (cùng với các phụ thuộc)

pip install –U setuptools wheel
pip install –U spacy
python -m spacy download en_core_web_sm

5. Mẫu

Mẫu là một thư viện cực kỳ hữu ích trong Python, có thể được sử dụng để thực hiện các tác vụ xử lý ngôn ngữ tự nhiên. Nó có nguồn gốc mở, và miễn phí cho bất cứ ai sử dụng. Nó có thể được sử dụng để NLP, khai thác văn bản, khai thác web, phân tích mạng và học máy.

Nó đi kèm với một loạt các công cụ để khai thác dữ liệu (Google, API Wikipedia, trình thu thập thông tin web và trình phân tích cú pháp HTML DOM), NLP (Tìm kiếm N-Gram, Phân tích tình cảm, WordNet, Taggers phần của bài báo) và ML ( Mô hình không gian vector, phân cụm, SVM) và phân tích mạng với tính trung tâm và trực quan hóa đồ thị.

Nó là một công cụ rất mạnh mẽ cho một đối tượng khoa học và phi khoa học. Cú pháp của nó rất dễ dàng và rõ ràng và phần tốt nhất là các tên và tham số chức năng được chọn theo cách để các lệnh tự giải thích cũng như một khung phát triển nhanh chóng cho các nhà phát triển web.

Cài đặt

pip install pattern

Sự kết luận

Trong bài viết này, chúng tôi đã xem qua 5 thư viện python được sử dụng phổ biến nhất để xử lý ngôn ngữ Tự nhiên và chúng tôi đã thảo luận khi chúng tôi phải sử dụng thư viện nào theo yêu cầu của chúng tôi. Tôi hy vọng bạn học được điều gì đó từ blog này và nó sẽ trở nên tốt nhất cho dự án của bạn.

Liên kết: https://www.askpython.com/python/top-python-libraries-for-natural-language-processing

#python #nlp

5 Thư Viện Python Tốt Nhất để Xử Lý Ngôn Ngữ Tự Nhiên (NLP)
山田  千代

山田 千代

1661153054

用於自然語言處理 的 5 個最佳 Python 庫

自然語言處理 (NLP)數據科學人工智能的交叉領域。它旨在理解人類語言的語義和內涵。

它的主要重點是從文本中找到有意義的信息,下一步是根據獲得的見解訓練數據模型。NLP函數廣泛應用於文本挖掘、文本分類、文本分析、情感分析、語音識別和機器翻譯。

這一切都是可能的,因為Python 中提供了廣泛的NLP 庫。所有庫的基本目標是正確地將自由文本句子轉換為結構化特徵,並且它必須能夠有效地實現最新的算法和模型。

因此,在本文中,我們將介紹對解決實際問題非常有用的 5 個自然語言庫和工具。

另請閱讀:Python 的頂級機器學習庫

用於 Python 的頂級自然語言處理庫

現在讓我們探索可用於 Python 且可用於文本生成和訓練的 5 個不同的 NLP 庫。你甚至可以使用這些在 Python 中創建聊天機器人。

1.自然語言工具包(NLTK)

它是構建 Python 程序的重要庫之一,使我們能夠處理人類語言數據並從中獲得洞察力。

它為超過 50 個語料庫(用於語言研究的大量書面或口語文本)和 WordNet 等詞彙資產提供了簡單的界面。

NLTK 還幫助為 NLP 庫和主動對話討論建立標記、解析、分類、詞幹提取、標記化和語義推理包裝器的文本預處理庫。

NLTK 是免費和開源的。它可輕鬆用於 Windows、Mac OS 和 Linux。由於功能範圍廣泛,速度較慢,有時難以滿足生產使用的需求。

NLTK 的功能包括詞性標註、實體提取、標記解析、語義推理、詞幹提取和文本分類

安裝

pip install nltk

2.根西姆

Gensim 是一個非常流行的自然語言處理庫。它具有通過使用向量空間建模來識別兩個文檔之間的語義相似性的特殊功能。它的算法與語料庫大小無關,這意味著我們可以輕鬆處理大於 RAM 的輸入。

它專為“大型語料庫(用於語言研究的大量書面或口語文本)的主題建模、文檔索引和相似性檢索而設計。它廣泛用於數據分析、文本生成應用程序和語義搜索應用程序。它為我們提供了在自然語言作品中非常重要的一組算法。

gensim 的一些算法是分層狄利克雷過程 (HDP)、隨機投影 (RP)、潛在狄利克雷分配 (LDA)、潛在語義分析 (LSA/SVD/LSI) 或 word2vec 深度學習。 

安裝

pip install — upgrade gensim

3.核心NLP

Standford CoreNLP 包含一組人類語言技術工具。CoreNLP 旨在使對一段文本的語義分析工具的使用變得簡單而熟練。借助 CoreNLP,您只需幾行代碼即可提取各種文本屬性(如命名實體識別、詞性標註等)。  

由於 CoreNLP 是用 Java 編寫的,因此需要在您的設備上安裝 java。但是,它確實提供了許多流行編程語言的編程接口,其中也包括 Python。它結合了斯坦福大學的許多 NLP 工具,如解析器、情感分析、引導模式學習、命名實體識別器 (NER) 和共指解析系統、詞性 (POS) 標記器等等。

此外,CoreNLP 支持除英語、漢語、德語、法語、西班牙語和阿拉伯語之外的四種語言。

安裝

pip install stanfordnlp

4.斯帕西

SpaCy 是一個開源的 Python 自然語言處理庫。它專為生產用途而設計,以解決實際問題,並有助於處理大量文本數據。它配備了預訓練的統計模型和詞向量,SpaCy 是用 Cython 中的 python 編寫的(Cython 語言是 Python 語言的超集),這就是為什麼它可以更快、更高效地處理大量文本數據.

SpaCy 的主要特點是:

  • 它提供了像 BERT 這樣的多訓練變壓器。
  • 提供以超過 49 種語言為動機的標記化。
  • 提供文本分類、句子分割、詞形還原、詞性標註、命名實體識別等功能。
  • 它比其他庫快得多。
  • 它可以為深度學習預處理文本。
  • 它有超過 17 種語言的 55 個經過訓練的管道。

安裝(連同依賴項)

pip install –U setuptools wheel
pip install –U spacy
python -m spacy download en_core_web_sm

5.圖案

Pattern是 Python 中一個非常有用的庫,可用於實現自然語言處理任務。它是開源的,任何人都可以免費使用。它可用於 NLP、文本挖掘、Web 挖掘、網絡分析和機器學習。

它帶有大量用於數據挖掘(Google、Wikipedia API、網絡爬蟲和 HTML DOM 解析器)、NLP(n-gram 搜索、情感分析、WordNet、詞性標註器)和 ML(向量空間模型、聚類、SVM)和具有圖中心性和可視化的網絡分析。

對於科學和非科學觀眾來說,它是一個非常強大的工具。它的語法非常簡單明了,最好的部分是函數名稱和參數的選擇方式使命令不言自明,它還可以作為 Web 開發人員的快速開發框架。

安裝

pip install pattern

結論

在本文中,我們介紹了用於自然語言處理的 5 個最常用的 Python 庫,並討論了何時必鬚根據需要使用哪個庫。我希望你能從這個博客中學到一些東西,這對你的項目來說是最好的。

鏈接:https ://www.askpython.com/python/top-python-libraries-for-natural-language-processing

#python #nlp

用於自然語言處理 的 5 個最佳 Python 庫
Royce  Reinger

Royce Reinger

1659757380

Lemmatizer for text in English. Inspired by Python's

lemmatizer

Lemmatizer for text in English. Inspired by Python's nltk.corpus.reader.wordnet.morphy package.

Based on code posted by mtbr at his blog entry WordNet-based lemmatizer

Version 0.2 has added functionality to add user supplied data at runtime

Installation

sudo gem install lemmatizer

Usage

require "lemmatizer"
  
lem = Lemmatizer.new
  
p lem.lemma("dogs",    :noun ) # => "dog"
p lem.lemma("hired",   :verb ) # => "hire"
p lem.lemma("hotter",  :adj  ) # => "hot"
p lem.lemma("better",  :adv  ) # => "well"
  
# when part-of-speech symbol is not specified as the second argument, 
# lemmatizer tries :verb, :noun, :adj, and :adv one by one in this order.
p lem.lemma("fired")           # => "fire"
p lem.lemma("slow")            # => "slow"

Limitations

# Lemmatizer leaves alone words that its dictionary does not contain.
# This keeps proper names such as "James" intact.
p lem.lemma("MacBooks", :noun) # => "MacBooks" 
  
# If an inflected form is included as a lemma in the word index,
# lemmatizer may not give an expected result.
p lem.lemma("higher", :adj) # => "higher" not "high"!

# The above has to happen because "higher" is itself an entry word listed in dict/index.adj .
# To fix this, modify the original dict directly (lib/dict/index.{noun|verb|adj|adv}) 
# or supply with custom dict files (recommended).

Supplying with user dict

# You can supply custom dict files consisting of lines in the format of <pos>\s+<form>\s+<lemma>.
# The data in user supplied files overrides the preset data. Here's the sample. 

# --- sample.dict1.txt (don't include hash symbol on the left) ---
# adj   higher   high
# adj   highest  high
# noun  MacBooks MacBook
# ---------------------------------------------------------------

lem = Lemmatizer.new("sample.dict1.txt")

p lem.lemma("higher", :adj)     # => "high"
p lem.lemma("highest", :adj)    # => "high"
p lem.lemma("MacBooks", :noun)  # => "MacBook"

# The argument to Lemmatizer.new can be either of the following:
# 1) a path string to a dict file (e.g. "/path/to/dict.txt")
# 2) an array of paths to dict files (e.g. ["./dict/noun.txt", "./dict/verb.txt"])

Resolving abbreviations

# You can use 'abbr' tag in user dicts to resolve abbreviations in text.

# --- sample.dict2.txt (don't include hash symbol on the left) ---
# abbr  utexas   University of Texas
# abbr  mit      Massachusetts Institute of Technology
# ---------------------------------------------------------------

# <NOTE>
# 1. Expressions on the right (substitutes) can contain white spaces, 
#    while expressions in the middle (words to be replaced) cannot.
# 2. Double/Single quotations could be used with substitute expressions,
#    but not with original expressions.

lem = Lemmatizer.new("sample.dict2.txt")

p lem.lemma("utexas", :abbr) # => "University of Texas"
p lem.lemma("mit", :abbr)    # => "Massachusetts Institute of Technology"

Author

Thanks for assistance and contributions:

Author: Yohasebe
Source Code: https://github.com/yohasebe/lemmatizer 
License: MIT license

#ruby #nlp 

Lemmatizer for text in English. Inspired by Python's
Royce  Reinger

Royce Reinger

1659749040

Scylla: A Ruby Port Of TextCat

scylla

Scylla is a language categorizing gem that allows you to guess the language of a given text. Scylla is a Ruby port of TextCat (www.let.rug.nl/~vannoord/TextCat) and is based on the text categorization algorithm presented in Cavnar, W. B. and J. M. Trenkle, “N-Gram-Based Text Categorization'' In Proceedings of Third Annual Symposium on Document Analysis and Information Retrieval, Las Vegas, NV, UNLV Publications/Reprographics, pp. 161-175, 11-13 April 1994.

Installation

gem install scylla

Usage

require 'scylla'

"this is english text".language
=> "english" 

"Este es un texto español".language
=> "spanish"

Multiple results for other possible languages:

"isso poderia ser confundido com espanhol, bem".language
=> "portuguese"

"isso poderia ser confundido com espanhol, bem".guess_language
=> ["portuguese", "spanish"]

Training

Training is done by fetching data from wikipedia. To fetch latest articles (The country name in the language in question, eg. “England” for English or “日本” for Japanese), run

rake scylla:train

Contributing to scylla

Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet

Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it

Fork the project

Start a feature/bugfix branch

Commit and push until you are happy with your contribution

Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.

Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Author: Hashwin
Source Code: https://github.com/hashwin/scylla 
License: MIT license

#ruby #nlp 

Scylla: A Ruby Port Of TextCat