Najlepsze projekty NLP na Github, które powinieneś zdobyć [2022]
Opublikowany: 2021-01-01Sztuczna inteligencja ma wiele gałęzi, z których przetwarzanie języka naturalnego (NLP) stało się potężnym narzędziem nowej ery. NLP sięga lat pięćdziesiątych, kiedy Alan Turing opublikował artykuł – „ Computing Machinery and Intelligence ” – w którym zaproponował test (obecnie znany jako test Turinga ) obejmujący automatyczną interpretację i generowanie naturalnych języków ludzkich. Mimo to NLP dopiero niedawno zyskało uznanie i popularność na całym świecie.
Spis treści
Co to jest przetwarzanie języka naturalnego?
Przetwarzanie języka naturalnego polega na ułatwianiu komunikacji człowiek-maszyna. Jego celem jest wyszkolenie komputerów w zakresie rozumienia, interpretowania i manipulowania naturalnymi ludzkimi językami. NLP czerpie inspirację z wielu dyscyplin, takich jak sztuczna inteligencja, informatyka i lingwistyka komputerowa.
Ludzie komunikują się w swoich ojczystych językach, takich jak angielski, japoński, hiszpański itp., podczas gdy komputery mówią w swoim ojczystym języku, który jest językiem binarnym. Podczas gdy komputery nie mogą zrozumieć naszych naturalnych języków ludzkich, język maszynowy jest w większości niezrozumiały dla większości ludzi.
W tym miejscu wkracza NLP, aby wypełnić lukę między komunikacją między ludźmi a zrozumieniem komputera. Przetwarzanie języka naturalnego umożliwia komputerom komunikowanie się z ludźmi w ich ojczystym języku, pomagając im czytać teksty, słyszeć mowę, interpretować wiadomości audio/tekstowe, mierzyć nastroje i wiele więcej.
Wraz z eksplozją danych wywołaną codziennymi interakcjami i transakcjami w cyfrowym świecie przetwarzanie języka naturalnego stało się ważniejsze dla firm. Dzięki NLP firmy mogą wykorzystywać ogromne ilości nieprzetworzonych danych biznesowych, rozmów w mediach społecznościowych itp., aby zrozumieć dane i podejmować decyzje zorientowane na dane.
W tym artykule wymienimy 12 projektów NLP na GitHub, aby Cię zainspirować! Praca nad tymi projektami pomoże wzbogacić Twoją wiedzę o domenie i wyostrzyć umiejętności w świecie rzeczywistym.

Najlepsze projekty GitHub NLP
1. Identyfikacja parafrazy
Wykrywanie parafraz to aplikacja NLP, która wykrywa, czy dwa różne zdania mają to samo znaczenie. Jest szeroko stosowany w tłumaczeniu maszynowym, odpowiadaniu na pytania, ekstrakcji/odzyskiwaniu informacji, podsumowaniu tekstu i generowaniu języka naturalnego.
Jest to projekt przyjazny dla początkujących, w którym zbudujesz system identyfikacji parafraz, który może dokładnie zidentyfikować podobieństwa i różnice między dwiema jednostkami tekstowymi (na przykład zdaniami), stosując na nich analizy składniowe i semantyczne.
2. Podobieństwo dokumentów
Jest to kolejny projekt przyjazny dla początkujących, którego celem jest ilościowe określenie podobieństw między dwoma dokumentami przy użyciu metody podobieństwa Cosinus. Dzięki odnalezieniu podobieństw między tymi dwoma artykułami, projekt ten naświetli wspólne tematy dyskusji.
Podobieństwo kosinusowe konwertuje dwa dokumenty na wektory, aby obliczyć podobieństwo między tymi wektorami. Oblicza podobieństwa dokumentów, biorąc wewnętrzną przestrzeń produktu, która mierzy kąt cosinus między nimi.
3. Przewidywanie tekstu
W tym projekcie zbudujesz aplikację, która będzie przewidywać następne słowo podczas wpisywania słów. Narzędzia użyte do stworzenia tego projektu przewidywania tekstu obejmują przetwarzanie języka naturalnego, eksplorację tekstu i zestaw narzędzi R.
Projekt wykorzystuje estymator maksymalnego prawdopodobieństwa z wygładzaniem Knesera Neya jako model predykcyjny. Predykcja jest zaprojektowana na podstawie zbioru słów przechowywanych w bazie danych używanej do uczenia modelu. Pełny zestaw zasobów dla tego projektu można znaleźć w serwisie GitHub.
4. Nauka o geniuszu
Projekt ten jest częścią projektu Nauka Sukcesu . Celem jest tutaj ustalenie, czy określone czynniki leksykalne mogą wskazywać na uwagę, jaką otrzymał artykuł, mierzoną znormalizowanymi wskaźnikami cytowań, przy użyciu wielu narzędzi analitycznych do nauki danych i NLP.
W początkowej fazie projekt koncentruje się na badaniu czasowej i dyscyplinarnej wariancji długości i cech składniowych tytułów artykułów w sieci Web of Science — zbiorze danych zawierającym ponad 50 milionów artykułów opublikowanych od 1900 roku. które mogą dokładnie oszacować wpływ artykułu naukowego na społeczność.
5. Wyodrębnij nastroje giełdowe z nagłówków wiadomości
Jak sugeruje tytuł, użyjesz analizy sentymentu w nagłówkach wiadomości finansowych z Finviz, aby uzyskać spostrzeżenia dotyczące inwestycji w tym projekcie. Technika analizy sentymentu pomoże Ci zrozumieć i zinterpretować emocje kryjące się za nagłówkami oraz przewidzieć, czy obecna sytuacja rynkowa jest na korzyść danej akcji, czy nie.
6. Inteligentny bot
Ten projekt obejmuje zbudowanie inteligentnego bota, który może analizować i dopasowywać wyniki z określonego repozytorium, aby odpowiadać na pytania. Do tej operacji bot używa WordNet. Rozważa kontekst pytania dotyczącego tagów w dokumentach strukturalnych (takich jak nagłówki, pogrubione tytuły itp.). Ponieważ zachowuje kontekst, możesz zadawać powiązane pytania dotyczące tego samego tematu.
Na przykład, jeśli chcesz zapytać o artykuł w Wikipedii, możesz użyć szablonu „Opowiedz mi o XYZ” i kontynuować zadawanie podobnych pytań po ustaleniu kontekstu. Ponownie możesz wysłać zapytanie do strony internetowej, podając adres URL strony jako źródło, np. „ https://www.microsoft.com/en-us/software-download/faq ”. Działa to wyjątkowo dobrze w przypadku stron FAQ i Q&A.

7. CitesCyVerse
Projekt CitesCyVerse jest zaprojektowany na The Science Citation Knowledge Extractor . CitesCyVerse to narzędzie typu open source, które wykorzystuje uczenie maszynowe i NLP, aby pomóc badaczom biomedycznym zrozumieć, w jaki sposób inni wykorzystują ich pracę, analizując treść cytowanych ich artykułów. Korzystając z ML i NLP, CitesCyVerse wyodrębnia najważniejsze tematy i koncepcje omówione w cytowanych dokumentach. Pozwala to naukowcom lepiej zrozumieć, w jaki sposób ich praca wpływa na innych członków społeczności naukowej.
CitesCyVerse zawiera WordClouds, który generuje nowe chmury z podobnych słów wymienionych w cytowanych artykułach. Ponadto zawiera Tematy, które pozwalają odkrywać popularne tematy artykułów i publikacji cytujących CyVerse.
8. Data Science Capstone – Skrypty przetwarzania danych
W tym projekcie zwieńczenia nauki o danych użyjesz skryptów przetwarzania danych, aby zademonstrować inżynierię danych zamiast tworzenia modelu n-gramów. Skrypty te mogą przetwarzać cały korpus, aby wyprodukować n-gramy i ich liczbę. Możesz użyć tych danych do opracowania algorytmów predykcyjnych tekstu.
Aby zbudować ten projekt, potrzebujesz systemu dwurdzeniowego (ponieważ większość skryptów jest jednowątkowych) z co najmniej 16 GB pamięci RAM. Jeśli chodzi o wymagania programowe, potrzebujesz – Linux (najlepiej testowany na Ubuntu 14.04), Python (wersja 2.7), NLTK (wersja 3.0) i NumPy.
Przeczytaj: Pomysły i tematy projektów dotyczące przetwarzania języka naturalnego
9. Generator skryptów
To ekscytujący projekt, w którym zbudujesz RNN, aby wygenerować scenariusze telewizyjne do popularnego serialu Simpsonowie w oparciu o zbiór danych scenariuszy ze wszystkich 27 sezonów serialu. RNN wygenerują nowy scenariusz do konkretnej sceny nakręconej w Tawernie Moe.
Projekt generatora skryptów jest częścią Deep Learning Nanodegree firmy Udacity. Realizacja projektu zawarta jest w: dlnd_tv_script_generation.ipynb
10. Prognozy akcji Reddit
Ten projekt ma na celu zrozumienie, w jaki sposób posty w mediach społecznościowych wpływają na przyszłe ceny poszczególnych akcji. W tym miejscu zbadamy wpływ postów w mediach społecznościowych na Reddit, w szczególności subreddity/fora skoncentrowane na inwestycjach, przy użyciu metod analizy tekstu.
Możesz użyć plików repozytorium GitHub, aby wyczyścić i zastosować analizę tonacji do postów/komentarzy Reddit i użyć tych danych do tworzenia modeli regresji. Repozytorium zawiera również kod, którego można użyć w interaktywnej aplikacji internetowej wykorzystywanej do wizualizacji nastrojów w czasie rzeczywistym dla określonych wskaźników giełdowych i dokonywania odpowiednich prognoz.
11. Ja_bot
To zabawny projekt NLP, w którym opracujesz bota o nazwie Me_Bot, który będzie wykorzystywał Twoje rozmowy na WhatsApp, uczył się z nich i rozmawiał z Tobą tak samo, jak z inną osobą. Zasadniczo chodzi o stworzenie bota, który mówi tak jak Ty.
Musisz wyeksportować swoje czaty WhatsApp z telefonu i wyszkolić bota na tych danych. Aby to zrobić, musisz przejść do WhatsApp na telefonie, wybrać dowolną rozmowę i wyeksportować ją z ustawień aplikacji. Następnie możesz przenieść wygenerowany plik „.txt” do folderu Me_Bot.

12. Analizator mowy i emocji
Ten projekt koncentruje się na stworzeniu modelu ML, który może wykrywać emocje z rozmów, które często prowadzimy w naszym codziennym życiu. Model ML może wykryć do pięciu różnych emocji i zaoferować spersonalizowane rekomendacje w oparciu o Twój obecny nastrój.
Ten oparty na emocjach silnik rekomendacji ma ogromną wartość dla wielu branż, ponieważ mogą go używać do sprzedawania wysoce ukierunkowanym odbiorcom i nabywcom. Na przykład platformy do strumieniowego przesyłania treści online mogą korzystać z tego narzędzia, aby oferować indywidualne sugestie dotyczące treści, czytając ich aktualny nastrój i preferencje.
Przeczytaj także: Głębokie uczenie a NLP
Wniosek
Dzięki temu dotarliśmy do końca naszej listy. Te 12 projektów NLP w serwisie GitHub doskonale nadaje się do doskonalenia umiejętności kodowania i opracowywania projektów. Co najważniejsze, budowanie projektu pomoże Ci opanować niuanse przetwarzania języka naturalnego, zwiększając w ten sposób wiedzę o domenie.
Jeśli chcesz poprawić swoje umiejętności NLP, musisz zdobyć te projekty NLP. Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.
Jakie są główne wyzwania przetwarzania języka naturalnego?
Przetwarzanie języka naturalnego ma wiele wyzwań. Głównym problemem jest brak dostępności mocy obliczeniowej. Obecne algorytmy są tworzone do pracy w systemach off-line, które wymagają ogromnej mocy obliczeniowej i mogą zająć więcej czasu, aby zakończyć przetwarzanie. Drugim problemem są dostępne zasoby. Stworzenie algorytmu, który może pracować z niewielką ilością danych, nie jest łatwe i bardziej czasochłonne. Kolejnym wyzwaniem jest dostępność ogromnych ilości danych, które musimy przetworzyć.
Który model NLP zapewnia najlepszą dokładność?
Najlepszą dokładność modeli NLP osiąga się, przepuszczając tekst przez szereg coraz bardziej wyrafinowanych filtrów. Pierwsza warstwa polega na usunięciu słów stop, interpunkcji i cyfr. Następnie cały tekst powinien być lematyzowany za pomocą stemmera Portera, a następnie wszystkie wyrazy powinny być zastąpione ich lematyzowanymi formami. Następnie ostatnim krokiem jest usunięcie wszelkich słów, które nie istnieją w słowniku 200 000 słów.
Czym jest tokenizacja w NLP?
Tokenizacja to proces dzielenia zdania na części składowe, zwane tokenami. Po zastosowaniu procesu możemy łatwo wyodrębnić znaczenie lub intencję zdania. Tokenizacja odbywa się po podzieleniu zdań. W NLP tokeny służą do dalszego przetwarzania, klasyfikacji i reprezentacji zdania. Niektóre z zadań NLP, które obejmują tokenizację, to wykrywanie języka, tagowanie POS i parsowanie.
