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 loc...

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 ...

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: source: Amazon.com 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 ...

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 effe...

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 ...

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 failure What 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 c...

git cherry-pick [commit]

Customer Needs My team already had a go-live app in a customer environment some months ago. We have been developing some new features for our next milestone. The situation is described in the picture below: We used Git for our codebase management. The go-live app running on our customer environment was at version ` v1 `. The latest sprint release was at version ` v7 ` for our developing app. Our customers wanted to have two separated release packages for our current sprint release. We all know that it was easy to ship the package to the developing app. However, the issue was that how we just picked some features needed for the go-live app. We called this package was a hotfix. Git Cherry-Picking Fortunately, we found that Git provided a way to achieve this task. Actually, we had all commits on the branch ` master ` already. We created a new branch called ` hotfix/v1.1 ` and we traced back which commits needed. We used cherry-picking for merging these commits to this branch....