{"id":11563,"date":"2020-09-11T10:52:13","date_gmt":"2020-09-11T08:52:13","guid":{"rendered":"http:\/\/flaven.fr\/?p=11563"},"modified":"2020-09-13T07:54:29","modified_gmt":"2020-09-13T05:54:29","slug":"quick-overview-about-using-nlp-for-a-cms-customer-support-faqs-turn-to-a-chatbot-or-cms-editorial-features-for-journalist-keywords-extraction-using-spacy-rake-tensorflow-pytorch","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2020\/09\/quick-overview-about-using-nlp-for-a-cms-customer-support-faqs-turn-to-a-chatbot-or-cms-editorial-features-for-journalist-keywords-extraction-using-spacy-rake-tensorflow-pytorch\/","title":{"rendered":"Quick overview about using NLP for a CMS Customer Support (FAQs turn to a Chatbot) or CMS editorial features for Journalist (Keywords Extraction) using spaCy, Rake, TensorFlow, Pytorch"},"content":{"rendered":"<p>After facial recognition, I am tackling language issues with Python. Indeed, after image, the other ingredient for a post is mostly text! As a CMS &#8220;manufacturer&#8221; or PO, I was wondering what advantages I can withdraw from NLP. Concretely, it means exploring and learning Python to improve both user support (FAQs turn as a Chatbot, analyzing User Feedback&#8230;) but also think about some editorial features especially with the help of Natural Language Processing (NLP).<\/p>\n<p>I am wrestling with the subject for too long because there are tons of libraries and tutorials introducing to Python and NLP! Looking for python is an heavy trend. Apparently, Google users in America have searched for Python more often than for Kim Kardashian. So,  &#8220;creating a chatbot in Python&#8221; has become the typical quoted example like &#8220;creating a blog&#8221; or &#8220;hello world&#8221; in other language!<\/p>\n<p>Source: <a href=\"https:\/\/www.economist.com\/science-and-technology\/2018\/07\/19\/python-has-brought-computer-programming-to-a-vast-new-audience\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.economist.com\/science-and-technology\/2018\/07\/19\/python-has-brought-computer-programming-to-a-vast-new-audience<\/a><\/p>\n<p>Like I said at the beginning of this post. The starting idea was simple, how can I aleviate real-world tasks such as: <\/p>\n<ol>\n<li>Improve the user feedback loop (monitoring user feedback or converting static FAQs to a modest User Support Conversational Agent).<\/li>\n<li>Text understanding to enable meaningfull keywords extraction or text summary for instance.<\/li>\n<\/ol>\n<p>I found some very contrived examples and some more advanced ones like always. Even though, these examples are oversimplified, there are still caveats for less technical readers, including me, especially when it comes to concepts pertaining to linguistic eg stemming, tokenization, tokenizer, bag of words or Convolutional Neural Network.<\/p>\n<p>I invite to check these very intuitive videos that are good introduction to NLP.<\/p>\n<p>These videos are giving some enlightening on NLP&#8217;s concepts such as stemming, tokenization, tokenizer or bag of words or even some explanations on different type of IA\u2019s network such as Convolutional Neural Network and the way to use it.<\/p>\n<ul>\n<li>SPACY&#8217;S ENTITY RECOGNITION MODEL: incremental parsing with Bloom embeddings &#038; residual CNNs<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=sqDHBH9IjRU\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=sqDHBH9IjRU<\/a><\/li>\n<li>PyTorch Beginner Tutorials from my YouTube channel.<br \/><a href=\"https:\/\/github.com\/python-engineer\/pytorchTutorial\" target=\"_blank\" rel=\"noopener noreferrer\">ttps:\/\/github.com\/python-engineer\/pytorchTutorial<\/a><\/li>\n<li>Advanced NLP with spaCy \u00b7 A free online course<br \/><a href=\"https:\/\/course.spacy.io\/en\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/course.spacy.io\/en\/<\/a><\/li>\n<\/ul>\n<p><b>Here is a posts&#8217;digest to start with NLP oriented around 2 basic usages, that can be implemented in a CMS: Practical Use Cases in a CMS&#8217;s support and simple techniques to extract Keywords or even &#8220;slice&#8221; a post.<\/b><\/p>\n<p><b>Chronologically, the very first library, I explored was the famous NLPs librairie, NTLK. Then I discovered Pytorch, made by Facebook and then Spacy. There will be certainly a more specific article on Spacy because I really like Spacy for its accessibility both in tutorials and in its core values. After all this reading, I selected few articles that were illustrating, at least, some of my personal interests for NLP. This post is a quick overview of that exploration.<\/b><\/p>\n<p><b>The source code is available on my GitHub account and I am using my own mac plus anaconda to deal and install all the require libraries (<a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction<\/a>). All libraries have been installed with the help of <a href=\"https:\/\/www.anaconda.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Anaconda<\/a>.<\/b><\/p>\n<h2>1. Keyword Extraction<\/h2>\n<h3>A beginner&#8217;s guide to keyword extraction with natural language processing (article_1_keyword_extraction_nlp)<\/h3>\n<p>A good usecase for support where you parse a unique user feedback file and retrieve core informations with NLP. This usecase leverage on a bunch of librairies such as Panda, Scipy, Seaborn, scikit-learn and for sure NLTK. It parses a huge document in .tsv format (Tab-separated values).<\/p>\n<p>Source: <a href=\"https:\/\/www.andyfitzgeraldconsulting.com\/writing\/keyword-extraction-nlp\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.andyfitzgeraldconsulting.com\/writing\/keyword-extraction-nlp\/<\/a><\/p>\n<p>Source: <a href=\"https:\/\/github.com\/andybywire\/nlp-text-analysis\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/andybywire\/nlp-text-analysis<\/a> <\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_1_keyword_extraction_nlp\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_1_keyword_extraction_nlp<\/a><\/p>\n<p><b>Requirement to run the scripts<\/b><\/p>\n<pre lang=\"bash\">\r\n\r\n# look in in https:\/\/anaconda.org\/conda-forge\/ to find the command.\r\n\r\n# pandas for data analysis and manipulation \r\nconda install -c anaconda pandas\r\n\r\n# nltk, statistical natural language processing \r\nconda install -c anaconda nltk\r\n\r\n\r\n# matplotlib is a python 2D plotting library\r\nconda install -c anaconda matplotlib\r\n\r\n\r\n# seaborn visualization library based on matplotlib\r\nconda install -c anaconda seaborn\r\n\r\n\r\n# pillow imaging Library, image processing capabilities to your Python interpreter.\r\nconda install -c anaconda pillow\r\n\r\n\r\n\r\n# an imaging library to create word cloud visualizations\r\nconda install -c conda-forge wordcloud\r\n\r\n\r\n# install sklearn or scikit-learn\r\nconda install -c anaconda scikit-learn\r\n\r\n<\/pre>\n<p>Source: <a href=\"https:\/\/www.andyfitzgeraldconsulting.com\/writing\/keyword-extraction-nlp\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.andyfitzgeraldconsulting.com\/writing\/keyword-extraction-nlp\/<\/a><\/p>\n<h3>NLP keyword extraction tutorial with RAKE and Maui (article_2_keyword_extraction_nlp_rake)<\/h3>\n<p>For me, only first part was interesting, it shows how to use RAKE which stands for Rapid Automatic Keyword Extraction. RAKE extracts keywords that should describe the main topics expressed in a document. <\/p>\n<p>Source: <a href=\"https:\/\/www.airpair.com\/nlp\/keyword-extraction-tutorial\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.airpair.com\/nlp\/keyword-extraction-tutorial<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_2_keyword_extraction_nlp_rake\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_2_keyword_extraction_nlp_rake<\/a><\/p>\n<h3>Extract Keywords Using spaCy in Python (article_3_keyword_extraction_nlp_spacy)<\/h3>\n<p>This article from Ng Wai Foong and some other examples from the great official spaCy documentation show how to quickly get to grip with Spacy.<\/p>\n<p>The script extracting keywords with Spacy is straightforward like the other article from this guy Ng Wai Foong.<\/p>\n<p>Source: <a href=\"https:\/\/medium.com\/better-programming\/extract-keywords-using-spacy-in-python-4a8415478fbf\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/better-programming\/extract-keywords-using-spacy-in-python-4a8415478fbf<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_3_keyword_extraction_nlp_spacy\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_3_keyword_extraction_nlp_spacy<\/a><\/p>\n<h3>Miscellaneous examples with spaCy (article_4_miscellaneous_examples_nlp_spacy)<\/h3>\n<p>Some miscellaneous linguistic scripts using spaCy. There is much more on their github account and the documantion is terrific.<\/p>\n<p>Source: <a href=\"https:\/\/github.com\/explosion\/spaCy\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/explosion\/spaCy<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_4_miscellaneous_examples_nlp_spacy\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_4_miscellaneous_examples_nlp_spacy<\/a><\/p>\n<h2>Scraping Post<\/h2>\n<h3>Newspaper: Article scraping &#038; curation (article_5_playing_with_newspaper_post_scraping_curation)<\/h3>\n<p>A simple attemps with a librairie newspaper. The Python librairie gives the ablility to slice up any post online. In the script, as an example, I am using one of my blog&#8217;s post.<\/p>\n<p>Source: <a href=\"https:\/\/newspaper.readthedocs.io\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/newspaper.readthedocs.io\/en\/latest\/<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_5_playing_with_newspaper_post_scraping_curation\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_5_playing_with_newspaper_post_scraping_curation<\/a><\/p>\n<p><b>If you need to check the import of newspaper<\/b><\/p>\n<pre lang=\"bash\">\r\n$ python\r\n<\/pre>\n<pre lang=\"python\">\r\n>>> import newspaper\r\n>>> newspaper.__version__\r\n>>> exit()\r\n<\/pre>\n<h2>ChatBot<\/h2>\n<h3>ChatBot With PyTorch &#8211; NLP And Deep Learning (article_6_chatbot_with_pytorch)<\/h3>\n<p>We left the Keyword Extraction for ChatBot. Turning my FAQ to a ChatBot with the help of Pytorch and NLTK. It is a very intuitive tutorial and the videos are making the rest.<br \/>\nCertainly, I was not rapt in ecstasy by the chatbot ability but there is a lot of promises for Chatbots, supposed to be handling fairly complex conversation with humans and so using a lot of Natural Language Processing techniques in order to understand the human&#8217;s requests.<\/p>\n<p>Source: <a href=\"https:\/\/www.python-engineer.com\/videos\/chatbot-pytorch\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.python-engineer.com\/videos\/chatbot-pytorch\/<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_6_chatbot_with_pytorch\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_6_chatbot_with_pytorch<\/a><\/p>\n<h3>Build Your First Chatbot in Python (article_7_chatbot_with_tensorflow)<\/h3>\n<p>A different ChatBot Build on TensorFlow from a .txt file.<\/p>\n<p>Source: <a href=\"https:\/\/medium.com\/x8-the-ai-community\/build-your-first-chatbot-in-python-334247814900\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/x8-the-ai-community\/build-your-first-chatbot-in-python-334247814900<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_7_chatbot_with_tensorflow\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_7_chatbot_with_tensorflow<\/a><\/p>\n<h3>Chatbot tutorial by Matthew Inkawhich (article_8_chatbot_tutorial_pytorch)<\/h3>\n<p>I found a more advanced Chatbot tutorial with Pytorch. Be careful with the n_iteration value because it requires a lot of space disk! I was forced to downsize the training but then the chatbot sucks a little bit. Anyway, the example is great. <\/p>\n<p>Check<br \/>\n<a href=\"https:\/\/pytorch.org\/tutorials\/beginner\/chatbot_tutorial.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/pytorch.org\/tutorials\/beginner\/chatbot_tutorial.html<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_8_chatbot_tutorial_pytorch\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_8_chatbot_tutorial_pytorch<\/a><\/p>\n<h3>Text Summarization Using spaCy in Python (article_9_text_summarization_using_spacy)<\/h3>\n<p>A second article from Ng Wai Foong. It is about Text Summarization with TF-IDF (Term Frequency-Inverse Data Frequency). It leverages on Spacy and the result is immediate<\/p>\n<p>Source: <a href=\"https:\/\/medium.com\/better-programming\/extractive-text-summarization-using-spacy-in-python-88ab96d1fd97\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/better-programming\/extractive-text-summarization-using-spacy-in-python-88ab96d1fd97<\/a><\/p>\n<p>My files: <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_9_text_summarization_using_spacy\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/python_nlp_explorations_chatbot_keywords_extraction\/article_9_text_summarization_using_spacy<\/a><\/p>\n<h2>Some critics about IA<\/h2>\n<p>Let&#8217;s step back a little bit to think a minute about IA consequences. These IA tools exerts an undeniable fascination. Why? These are new tools that actually begin to think and act on its own. The idea that these tools will make decisions and undertake actions on their own is fascinating and scary at the same time. I was wondering if any critical thinking existed towards the deafening consensus on AI?<br \/>\nI found some opponents, on a philosophical point of view. Even though, IA fanatics report that the AI promise is to &#8220;Humanize the machine, not mechanize the User&#8221;, the main critic remains the AI&#8217;s &#8220;injunctive power&#8221;. Combined with consent, it makes an unstoppable combination to turn us mankind into passive and obedient sheeps! By the way, the GAFAS, that promote IA, never really assumed they were the bad guy.<\/p>\n<p>Indeed, IA can been seen as the ultimate market achievement where, reduced as consumers, we only take decisions with utilitarian goals, &#8220;obeying&#8221; to IA.<\/p>\n<p>Regarding NLP, the disturbing thing is the familiar form that this injunction takes. The Chatbot speaks to you, the NLP writes and advises you with your own words&#8230; This is step forward to a very persuasive soft power. So, is the very idea of rebelling still even exist as it sounds ludicrous, to fight with a friend!<\/p>\n<p>What I mostly remember from this reading:<br \/>\n&#8211; IA is a threat to humanity, especially our free will.<br \/>\n&#8211; IA is the ultimate version of &#8220;Invisible hand&#8221;, so criticizing IA seems to be the way to &#8220;burn down&#8221; the system aka capitalism, GAFAS (Facebook, Google, Amazon&#8230; etc. that are mostly behind the IA libraries and expect something in return: your datas so you can be profiled.<\/p>\n<p>Even though it is nowadays almost impossible to avoid IA, that&#8217;s always good to read opinions against the mainstream way of thinking so you\u2019ll be aware of the potential IA\u2019s threats!<\/p>\n<li>L&#8217; Intelligence artificielle ou l\u2019enjeu du si\u00e8cle: Anatomie d\u2019un antihumanisme radical de Eric Sadin (French)<br \/><a href=\"https:\/\/www.amazon.fr\/Lintelligence-artificielle-lenjeu-si%C3%A8cle-antihumanisme\/dp\/2373090503\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.amazon.fr\/Lintelligence-artificielle-lenjeu-si%C3%A8cle-antihumanisme\/dp\/2373090503<\/a><\/li>\n<li>Peter W. Singer On Why His \u2018Robot Revolution\u2019 Is Inevitable<br \/><a href=\"https:\/\/onezero.medium.com\/peter-w-singer-explains-why-his-robot-revolution-is-inevitable-2b858a68151f\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/onezero.medium.com\/peter-w-singer-explains-why-his-robot-revolution-is-inevitable-2b858a68151f<\/a><\/li>\n<h2>What&#8217;s next? How can I use NLP?<\/h2>\n<p>I wonder more and more if the target has not become to even drop PHP to build a web application. Is refactoring a PHP legacy Code in Python is an option?<\/p>\n<p>Indeed, building a web application, I do not even talk about a website seems to be easy nowadays. You can gather an effective SPA (Single Page Application) in a very short time but providing meaningful and advanced features for a CMS is much trickier! <\/p>\n<p>To be totally transparent, a simple question is spinning around in my head: How can I add some &#8220;intelligent&#8221; functionalities, using these Python libraries, to an existing CMS made in PHP (Laravel or Symfony for instance)? Apparently, the way seems to build a separate API in Python that will brigde with PHP!<\/p>\n<p>Like I said in my previous post, these NLP libraries are not only enabling new tasks to be made but these libraries can even carry out tasks like a real human such as me a P.O for a Backoffice! Great, I am outsourcing myself.<\/p>\n<h2>Using Anaconda<\/h2>\n<p>A reminder for useful commands with Anaconda<\/p>\n<pre lang=\"bash\">\r\n# Check Anaconda installation\r\nconda --version\r\n\r\n# Update conda\r\nconda update -n base -c defaults conda\r\n\r\n# Create an environment\r\n# environment with Python 3.5\r\nconda create --name myEnvironmentOne python=3.5\r\n\r\n# launch a script named 006_nltk_cookbook_test.py\r\n--- python 006_nltk_cookbook_test.py\r\n\r\n# Get into the env named myEnvironmentOne\r\nconda activate myEnvironmentOne\r\n\r\n# get out from an env\r\nconda deactivate\r\n\r\n# By default you are in the base env no need to activate\r\n# conda activate base\r\n<\/pre>\n<h2>In conclusion<\/h2>\n<p>This reading gave me an overview of the Python&#8217;s possibilities in terms of text understanding. NLP seems to be progressing more and more every day and remains fairly accessible if you do not pretend to be a specialist! It would be a shame to do without it while waiting to see progress in text&#8217;s generation with BERT for example.<\/p>\n<p><b> To remove doubts about the NLP&#8217;s potential, this post underwent both a keyword extraction and summarization operations with the help of 2 scripts given here as example. The result is not bad! It is a true crutch for a rookie journalist like me! You can see below the result.<\/b><\/p>\n<pre lang=\"diff\">\r\n# result for post tags\r\npython, nlp, spacy, ia, chatbot\r\n\r\n# summarization result\r\nThese videos are giving some enlightening on nlp's concepts such as stemming, tokenization, tokenizer or bag of words or even some explanations on different type of ia\u2019s network such as convolutional neural network and the way to use it.here is a posts'digest to start with nlp oriented around 2 basic usages, that can be implemented in a cms: practical use cases in a cms's support and simple techniques to extract keywords or even \"slice\" a post. Rake extracts keywords that should describe the main topics expressed in a document. An article from ng wai foong and some other examples from the great official spacy documentation show how to quickly get to grip with spacy. Concretely, it means exploring and learning python to improve both user support (faqs turn as a chatbot, analyzing user feedback...) but also think about some editorial features especially with the help of natural language processing (nlp).\r\n<\/pre>\n<h2>Read more<\/h2>\n<ul>\n<li>Create your chatbot using Python NLTK<br \/><a href=\"https:\/\/medium.com\/predict\/create-your-chatbot-using-python-nltk-761cd0aeaed3\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/predict\/create-your-chatbot-using-python-nltk-761cd0aeaed3<\/a><\/li>\n<li>Building Language Models (nlpforhackers)<br \/><a href=\"https:\/\/nlpforhackers.io\/language-models\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/nlpforhackers.io\/language-models\/<\/a><\/li>\n<li>Deploying a Text Classification Model Using Flask and Vue.js<br \/><a href=\"https:\/\/heartbeat.fritz.ai\/deploying-a-text-classification-model-using-flask-and-vue-js-25b9aa7ff048\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/heartbeat.fritz.ai\/deploying-a-text-classification-model-using-flask-and-vue-js-25b9aa7ff048<\/a><\/li>\n<li>Text Generation with Python and TensorFlow\/Keras<br \/><a href=\"https:\/\/stackabuse.com\/text-generation-with-python-and-tensorflow-keras\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/stackabuse.com\/text-generation-with-python-and-tensorflow-keras\/<\/a><\/li>\n<li>TEXT CLASSIFICATION WITH TORCHTEXT<br \/><a href=\"https:\/\/pytorch.org\/tutorials\/beginner\/text_sentiment_ngrams_tutorial.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/pytorch.org\/tutorials\/beginner\/text_sentiment_ngrams_tutorial.html<\/a><\/li>\n<li>Text Analysis by monkeylearn<br \/><a href=\"https:\/\/monkeylearn.com\/text-analysis\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/monkeylearn.com\/text-analysis\/<\/a><\/li>\n<li>BERT Word Embeddings Tutorial<br \/><a href=\"https:\/\/mccormickml.com\/2019\/05\/14\/BERT-word-embeddings-tutorial\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/mccormickml.com\/2019\/05\/14\/BERT-word-embeddings-tutorial\/<\/a><\/li>\n<li>A Hacker&#8217;s Guide to Python string and Natural Language Processing (NLP) packages<br \/><a href=\"https:\/\/gist.github.com\/brianspiering\/64b2256f25880a97936c198955b437e1\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/gist.github.com\/brianspiering\/64b2256f25880a97936c198955b437e1<\/a><\/li>\n<li>List of free resources to learn Natural Language Processing<br \/>\n<br \/><a href=\"https:\/\/hackernoon.com\/list-of-free-resources-to-learn-natural-language-processing-5bc4b76db552\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/hackernoon.com\/list-of-free-resources-to-learn-natural-language-processing-5bc4b76db552<\/a><\/li>\n<li>How I built and launched an AI product for under $100<br \/><a href=\"https:\/\/blog.usejournal.com\/how-i-built-and-launched-an-ai-product-for-under-100-6284646ec56b\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/blog.usejournal.com\/how-i-built-and-launched-an-ai-product-for-under-100-6284646ec56b<\/a><\/li>\n<li>Building Chatbots \u2013 Introduction<br \/><a href=\"https:\/\/nlpforhackers.io\/chatbots-introduction\/#more-8595\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/nlpforhackers.io\/chatbots-introduction\/#more-8595<\/a><\/li>\n<p><b>API python + vue.js<\/b><\/p>\n<li>Developing a Single Page App with Flask and Vue.js<br \/><a href=\"https:\/\/testdriven.io\/blog\/developing-a-single-page-app-with-flask-and-vuejs\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/testdriven.io\/blog\/developing-a-single-page-app-with-flask-and-vuejs\/<\/a><\/li>\n<li>Using Vue.js To Create An Interactive Weather Dashboard With APIs<br \/><a href=\"https:\/\/www.smashingmagazine.com\/2019\/02\/interactive-weather-dashboard-api-vue-js\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.smashingmagazine.com\/2019\/02\/interactive-weather-dashboard-api-vue-js\/<\/a><\/li>\n<li>Sample dockerized environmennt with Vue.js and Python API<br \/><a href=\"https:\/\/github.com\/e0ne\/docker-vuejs-python-nginx\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/e0ne\/docker-vuejs-python-nginx<\/a><\/li>\n<li>Building a Google search clone SPA with Vue and Flask<br \/><a href=\"https:\/\/scotch.io\/bar-talk\/\nbuilding-a-google-search-clone-spa-with-vue-and-flask\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/scotch.io\/bar-talk\/<br \/>\nbuilding-a-google-search-clone-spa-with-vue-and-flask<\/a><\/li>\n<li>Training Tensorflow Object Detection API with custom dataset for working in Javascript and Vue.js<br \/><a href=\"https:\/\/towardsdatascience.com\/training-tensorflow-object-detection-api-with-custom-dataset-for-working-in-javascript-and-vue-js-6634e0f33e03\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/towardsdatascience.com\/training-tensorflow-object-detection-api-with-custom-dataset-for-working-in-javascript-and-vue-js-6634e0f33e03<\/a><\/li>\n<li>Flask-RESTful &#8211; User\u2019s Guide<br \/><a href=\"https:\/\/flask-restful.readthedocs.io\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/flask-restful.readthedocs.io\/en\/latest\/<\/a><\/li>\n<li>Transformers, State-of-the-art Natural Language Processing for PyTorch and TensorFlow 2.0<br \/><a href=\"https:\/\/github.com\/huggingface\/transformers\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/huggingface\/transformers<\/a><\/li>\n<li>Sentiment Analysis with BERT and Transformers by Hugging Face using PyTorch and Python<br \/><a href=\"https:\/\/www.curiousily.com\/posts\/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.curiousily.com\/posts\/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python\/s<\/a><\/li>\n<p><b>Python goes on web&#8230;<\/b><\/p>\n<p>If you need to go to the web<\/p>\n<li>Flask\u2019s documentation<br \/><a href=\"https:\/\/flask.palletsprojects.com\/en\/1.1.x\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/flask.palletsprojects.com\/en\/1.1.x\/<\/a><\/li>\n<li>Django is a high-level Python Web framework <br \/><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.djangoproject.com\/<\/a><\/li>\n<p><b>Some extra ressources<\/b><\/p>\n<li>word_cloud, a little word cloud generator in Python. <br \/><a href=\"https:\/\/github.com\/amueller\/word_cloud\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/amueller\/word_cloud<\/a><\/li>\n<li>OpenAI\u2019s GPT-2: A Simple Guide to Build the World\u2019s Most Advanced Text Generator in Python<br \/><a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2019\/07\/openai-gpt2-text-generator-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.analyticsvidhya.com\/blog\/2019\/07\/openai-gpt2-text-generator-python\/<\/a><\/li>\n<li>Transfer Learning for NLP: Fine-Tuning BERT for Text Classification<br \/><a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2020\/07\/transfer-learning-for-nlp-fine-tuning-bert-for-text-classification\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.analyticsvidhya.com\/blog\/2020\/07\/transfer-learning-for-nlp-fine-tuning-bert-for-text-classification\/<\/a><\/li>\n<li>How To Train Your Chatbot With Simple Transformers<br \/><a href=\"https:\/\/towardsdatascience.com\/how-to-train-your-chatbot-with-simple-transformers-da25160859f4\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/towardsdatascience.com\/how-to-train-your-chatbot-with-simple-transformers-da25160859f4<\/a><\/li>\n<li>Python Engineer Videos<br \/><a href=\"https:\/\/www.youtube.com\/c\/PythonEngineer\/videos\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/c\/PythonEngineer\/videos<\/a><\/li>\n<li>Patrick Loeber (Python Engineer) Github<br \/><a href=\"https:\/\/github.com\/python-engineer\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/python-engineer<\/a><\/li>\n<li>github projects about text-mining<br \/><a href=\"https:\/\/github.com\/topics\/text-mining\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/topics\/text-mining<\/a><\/li>\n<li>bert-generative-text by JulienHeiduk<br \/><a href=\"https:\/\/github.com\/JulienHeiduk\/bert-generative-text\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/JulienHeiduk\/bert-generative-text<\/a><\/li>\n<li>flashtext by vi3k6i5<br \/><a href=\"https:\/\/github.com\/vi3k6i5\/flashtext\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/vi3k6i5\/flashtext<\/a><\/li>\n<li>Basic Flask Website tutorial<br \/><a href=\"https:\/\/pythonprogramming.net\/basic-flask-website-tutorial\/?completed=\/practical-flask-introduction\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/pythonprogramming.net\/basic-flask-website-tutorial\/?completed=\/practical-flask-introduction\/<br \/>\n<\/a><\/li>\n<li>Code from a book &#8220;Python Natural Language Processing&#8221;<br \/><a href=\"https:\/\/github.com\/jalajthanaki\/NLPython\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/jalajthanaki\/NLPython<\/a><\/li>\n<li>How to Build a Text Generator using TensorFlow 2 and Keras in Python<br \/><a href=\"https:\/\/www.thepythoncode.com\/article\/text-generation-keras-python\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.thepythoncode.com\/article\/text-generation-keras-python<\/a><\/li>\n<li>How to Build a Text Generator using TensorFlow and Keras in Python (code<br \/><a href=\"https:\/\/github.com\/x4nth055\/pythoncode-tutorials\/tree\/master\/machine-learning\/nlp\/text-generator\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/x4nth055\/pythoncode-tutorials\/tree\/master\/machine-learning\/nlp\/text-generator<\/a><\/li>\n<li>How to build a keyword suggestion tool using TensorFlow<br \/><a href=\"https:\/\/wordlift.io\/blog\/en\/keyword-suggestion-tool-tensorflow\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordlift.io\/blog\/en\/keyword-suggestion-tool-tensorflow\/<\/a><\/li>\n<li>HOW TO AUTOMATE KEYWORD RESEARCH WITH APIS &#038; PYTHON SCRIPTS<br \/><a href=\"https:\/\/seobutler.com\/how-to-automate-keyword-research-with-apis-python-scripts\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/seobutler.com\/how-to-automate-keyword-research-with-apis-python-scripts\/<br \/>\n<\/a><\/li>\n<li>RAKE short for Rapid Automatic Keyword Extraction algorithm<br \/><a href=\"https:\/\/github.com\/csurfer\/rake-nltk\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/csurfer\/rake-nltk<\/a><\/li>\n<li>Implementation of TextRank for keyword Extraction<br \/><a href=\"https:\/\/github.com\/JRC1995\/TextRank-Keyword-Extraction\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/JRC1995\/TextRank-Keyword-Extraction<\/a><\/li>\n<li>lazynlp<br \/><a href=\"https:\/\/github.com\/chiphuyen\/lazynlp\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/chiphuyen\/lazynlp<\/a><\/li>\n<li>Generating Random Poems with Python<br \/><a href=\"https:\/\/www.hallada.net\/2017\/07\/11\/generating-random-poems-with-python.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.hallada.net\/2017\/07\/11\/generating-random-poems-with-python.html<\/a><\/li>\n<li>Pythonprogramming, excellent source in python<br \/><a href=\"https:\/\/www.pythonprogramming.in\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.pythonprogramming.in\/<\/a><\/li>\n<li>Text Preprocessing in Python: Steps, Tools, and Examples<br \/><a href=\"https:\/\/medium.com\/@datamonsters\/text-preprocessing-in-python-steps-tools-and-examples-bf025f872908\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/@datamonsters\/text-preprocessing-in-python-steps-tools-and-examples-bf025f872908<\/a><\/li>\n<li>Text Mining in Python: Steps and Examples<br \/><a href=\"https:\/\/medium.com\/towards-artificial-intelligence\/text-mining-in-python-steps-and-examples-78b3f8fd913b\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/towards-artificial-intelligence\/text-mining-in-python-steps-and-examples-78b3f8fd913b<\/a><\/li>\n<li>Stop Words &#8211; Natural Language Processing With Python and NLTK p.2<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=w36-U-ccajM\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=w36-U-ccajM<\/a><\/li>\n<li>Chunking &#8211; Natural Language Processing With Python and NLTK p.5<br \/>\n<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=imPpT2Qo2sk\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=imPpT2Qo2sk<\/a><\/li>\n<li>Sentdex benhind pythonprogramming.net<br \/><a href=\"https:\/\/github.com\/Sentdex\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/Sentdex<\/a><\/li>\n<li>Kavita Ganesan website<br \/><a href=\"https:\/\/kavita-ganesan.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/kavita-ganesan.com\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>After facial recognition, I am tackling language issues with Python. Indeed, after image, the other ingredient for a post is mostly text! As a CMS&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2020\/09\/quick-overview-about-using-nlp-for-a-cms-customer-support-faqs-turn-to-a-chatbot-or-cms-editorial-features-for-journalist-keywords-extraction-using-spacy-rake-tensorflow-pytorch\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Quick overview about using NLP for a CMS Customer Support (FAQs turn to a Chatbot) or CMS editorial features for Journalist (Keywords Extraction) using spaCy, Rake, TensorFlow, Pytorch<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":11567,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Transform CMS support with NLP tools like spaCy, Rake, TensorFlow, and PyTorch. Automate FAQs into chatbots and extract keywords for journalists.","bf_ai_og_title":"NLP for CMS: Chatbots & Keywords","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3438,3437,3444,3447,3449],"tags":[2532,2560,2221,2577,2563,2575,2559,2564,2562,2565,285,2555,1866,2574,2579,2573,2556,2567,2566,2569,2557,405,2316,2583,2582,2576,2572,2568,2571,2578,2580,2558,2581,1131,363,2561,2570],"class_list":["post-11563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-machine-learning","category-business-case-studies","category-programming-databases","category-technology-trends","category-tutorials-how-to","tag-anaconda","tag-chatbot","tag-cms","tag-document","tag-editorial","tag-extraction","tag-faqs","tag-features","tag-feedback","tag-help","tag-image","tag-ingredient","tag-install","tag-keyword","tag-keywords","tag-learnconda","tag-manufacturer","tag-nltk","tag-pandas","tag-pillow","tag-po","tag-post","tag-python","tag-python-engineer","tag-pytorch","tag-rake","tag-scikit","tag-seaborn","tag-sklearn","tag-source","tag-spacy","tag-support","tag-tensorflow","tag-text","tag-tutorial","tag-user","tag-wordcloud"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-30v","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2020\/09\/nlp-python-explorations_b.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/11563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=11563"}],"version-history":[{"count":22,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/11563\/revisions"}],"predecessor-version":[{"id":11586,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/11563\/revisions\/11586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/11567"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=11563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=11563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=11563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}