Skip to main content

Posts

Applying pipeline “tensorflow_embedding” of Rasa NLU

According to this nice article, there was a new pipeline released using a different approach from the standard one (spacy_sklearn). I wanted to give it a try to see whether it can help with improving bot’s accuracy.

After applying done, I gave an evaluation of “tensorflow_embedding”. It seemed to work better a bit. For example, I defined intents “greet” and “goodbye” with some following messages in my training data.
## intent:greet- Hey! How are you? - Hi! How can I help you? - Good to see you! - Nice to see you! - Hi - Hello - Hi there ## intent:goodbye- Bye - Bye Bye - See you later - Take care - Peace In order to play around with Rasa NLU, I created a project here. You can have a look at this change from this pull request. Yay!

When I entered message “hi bot”, then bot with “tensorflow_embedding” could detect intent “greet” with better confidence scores rather than bot with “spacy_sklearn”. The following are responses after executing curl -X POST localhost:5000/parse -d '{&qu…
Recent posts

Sharing a virtualenv across several Python projects using Pipenv

There is a standard library for all projects in Python. However, several projects don’t always have the same dependencies all the time. That is where virtual environments come to play.

You can follow this official document to use two separated tools virtualenv and pip to fulfill that need. My preferred alternative is to use pipenv. Pipenv is easy to use and convenient. The following are my steps to make a shared virtualenv for my all projects which requires the same dependencies.

Step 1. Create an isolated virtualenv.
python -m venv my-shared-env Step 2. Create a symbolic link to the created virtualenv.
cd project_1 ln -s ~/.local/share/virtualenvs/my-shared-env .venv I have encountered the following issue at step 1.
FileNotFoundError: [Errno 2] No such file or directory: '{my_project_path}/.venv/bin/pip': '{my_project_path}/.venv/bin/pip' The root cause was I tried to create virtualenv by running pipenv install and renaming the generated virtualenv to a new name but …

"Java & Agile" was renamed "Python & Machine Learning"

I have started blogging since 2014. In fact, I just happened to know a very nice free blogging course of John Sonmez. Time flies!

I currently work at a startup to build an AI chatbot. It was where Python and Machine Learning become my most focus from now on. That also was a reason why I wanted to rename my blog theme. I still keep using Java in my projects though.

Thank you all for reading my blog so far. It motivates a lot to keep me carrying on this habit.

TL;DR
A new topic "Python & Machine Learning" is added to my blog theme today. Yay!

When we don't see the sun, we see other stars

What are your motivations for creativity? - I want to make a change.
- It makes me happy! It is a need of my mind.
How to be creative for a thing? There are two steps: - See the thing as every people see it - Think about a new different thing from it How to think about a new different thing? There are two ways: - Forget all things you have already known. - A whack on the side of your head. ;)
This was what I have learned from the following great book:
Well! A physical whack on the side of your head is needed sometimes but the meaning behind is that you need to break these 9 following locks on your mind. Remove them!
The lock #1: "The correct answer" We all learn from schools that there is only one correct answer to a question. For example, a proposition is only true or false in Algebra. In reality, there are always some answers to a question basing on a point of view. For example, number 6 becomes number 9 if you look it in the opposite.
The lock #2: "That is not logic&…

Fulfilling Your Contribution Needs

Human resource management motivation Managing human today is quite different from the industrial age which treats people as just "chickens". Rather than people now are very important to the success of an organization. People are an organization's special resource. They should be encouraged to grow to contribute their effort and creativeness to their beloved working environment because the contribution is one of their most needs in life.
Training people: getting rid of the ineffective model and adopting the new one The ineffective model of training people: Hiring new people --> giving them a crash course once --> expecting them working effectively. 

That somehow makes sense but you're about to expect a luck because you do not really spend your effort for mentoring them. If they can work effectively, well...lucky you! Otherwise, you will blame that these people are ineffective and you let them go and hire the new ones. What a waste of time!

The new effective one…

Google I/O '18

Here are my top 5 impressions on this conference.

Gmail - live sentence suggestion It looked like the way developers use intelligent code completion in an IDE when coding.
Google Photos: converting a photo has a document to pdf I have a paid app on my iPad called "Scanner for Me" but now I can use Google Photos instead. ;)
Google Assistant: bot makes a real call to book a restaurant dinner or a hair salon Wow! This feature, for me, is really a big innovation. My team is working so hard on building our bot which is able to have a continued conversation. Google is so good!
Google Maps: using Phone's camera to watch the direction When I saw a fox as a cicerone on the demo, I was thinking of Pokémon GO.
Google Lens: extract text from images I have heard a story from a friend of me that he had to use his app about "optical character recognition (OCR)" to scan and translate the texts into English whenever he saw texts in China. Google Lens would be a good helper for…

Daily Meetings - Coordinate and Communicate Every Day

Using daily meetings for frequent course corrections. However, you should keep the meeting short because time is burn rate.
Though good collaboration doesn't guarantee a project's success, poor collaboration almost always guarantees a project's failureWhat benefits does the daily meeting bring to you?

- Keeps inexperienced developers and experienced ones on-track.
- Avoids reinventing the wheel.
- Limits tumbleweed developers' damage.
- Leverages the entire team’s experience to solve problems quickly.
- Improves team communication.
- Helps every people have a big-picture point of view.
Who are tumbleweed developers? We’ve all worked with a few tumbleweed developers. These developers lose direction and drift through their days. They wade through the random code and “improve” it, cleaning up method signatures, polishing algorithms, and reformatting brackets. Tumbleweed developers lack the discipline to finish any task you ask them to do and generally cause more harm tha…