can python understand a human language? - human-language

I started learning python some months ago.
However, I came accRoss a job online and my client wanted me to write a web application to analyse stories and get features like title, characters, proverbs, morals and songs.
I achieved this through labeling and indexing.
But he further stated that he wanted the code to have the ability to understand the story and generate morals and some other things by itself without labelling the moral to fetch locally in the code.
The stories are in a Nigerian language and I don't know if this is possible.
Please is this possible?

Related

Automatic Anki question and card creation

I'm really interested in some sort of program that allows me to highlight quotations from books and automatically formulates flashcards, questions, etc.
The time-consuming process of creating Anki flashcards makes it basically not worth if you're trying to remember massive amounts of information and if there aren't pre-made flashcards. Anki's great for university but I'm aiming to remember large amounts of academic information outside of my basic university course.
Web scraping scripts are great for getting basic, well-presented information (I, for example, created 7,000 Anki flashcards of French verb conjugation using a script which worked magnificently), but I'm basically looking for a fast way to put information in, have it sort statistics and basic phrases from the text and formulate questions. This is a pretty complex task I assume -- but I wonder whether some higher-level information learning platform like Wolfram-Alpha might work for programming such a thing?
I don't really know -- I'm not a coder. Just someone looking to learn massive amounts of information and automate the process.
Any solutions, recommendations, etc?
Thanks
A few words about creating content in Anki
You have to consider that creating notes with Anki is a skill, and as all skills, the more you do it, the better you become at it.
For this reason, a workflow that works well when you are trying to learn a lot of things that you can't simply scrape from somewhere is to add them by hand, and when you realize you're doing a repetitive task, create a script to automate it.
This is easier and more efficient than a general-purpose solution to automatically generate cards because such a solution does not exists: it's easy to write a script that targets a single repetitive process (even if it's only for a few hundred notes), and make one each time you feel you are doing a tedious, repetitive work, but it's very hard to make a full-featured script that works for everything.
Even if you don't know how to code, you can still go on the Anki forum and ask for help: people will happily do so. However, it would be easier if you learnt how to code. For instance, you could learn the basics of Python, which is a very easy-to-learn programming language, which is also very handy for automation scripts and which is used to write Anki add-ons.
Wolfram
Regarding Wolfram-Alpha: I am not an expert about it, but it's just a computer algebra program. Yes, it has been "pimped" with some (quite limited) natural language recognition, and its database also includes non-math content, but it's still just a symbolic computation program. It's not what you are looking for.
Incremental reading
However, I have the impression that what you are looking for is a way to process a lot of text, extract information out of it and create notes that make you learn it. This process is called incremental reading, and here is an article that explains what it is in details. There is an Anki add-on that will help you with that task in Anki. It's clearly not fully automated, far from it, but you can really process several thousands of articles with it.

Best approach to first use of Python with Google Sheets, to query API in GitHub and Jira?

This question is about process / approach, more so than how to write the code itself. I'm a process learner, so this is the part that's creating personal anxiety for me.
I am very much a beginner, and still learning about importing libraries and the like. I have an idea for what I'd like to be able to do, for a Capstone Project, as I learn, however.
I have a spreadsheet that I use each Sprint as par of our Capacity Planning process. I want to use Python to query target tickets in our client's GitHub (while logged in) account, and our Jira account, to pull specific data into the cells that I currently populate manually. Others have expressed interest in seeing what I come up with, as they use the same Google sheets template similarly.
From Sheets for Developers > API v4, through trial and error, I should be able to figure out how to generally import data into Google Sheets. Likewise, this GoTrained Python Tutorial looks like it has an approach for obtaining information from GitHub API. I'm fairly certain that I can find similar for Jira (though the first site that I tried wanted to use a fake "captcha" script to trick me into accepting notifications from the site, which was a red flag, to me).
But which are the quality, most efficient approaches? Especially for a starting out Python beginner, like myself? The last time I coded was 15-20 years ago, using LPC to build rooms/mobs/objects on a MU*, accessed via Telnet protocol.
I need to learn more about how to set up the program, and which libraries might be useful; and the best way - after decomposition - to identify the components and which methods to use, generally, in solving for the project goal:
import select field data from Jira and GitHub to a Sheet, using Python
how do I know which libraries are best to import, like Tkinter, for functions that I will need (this one came up in search for creating dropdown lists in Python, so that the Repo names can be standardized).
seeing lots of references to REST-api, but we haven't talked about that in course yet
what are some quality resources to learn more about principles that I should understand better before attempting this project?
w3schools.com is on my radar, but it is also extensive -- not sure if there are resources honed in on this type of "challenge"

Meta construction capabilities?

I am currently considering Orange as the base for a meta-learning assistant prototype I intend to develop, but before committing myself to a thorough exploration of the documentation and learning about python development (which would both be quite time consuming), I would appreciate some insight regarding the feasibility of such prototype within Orange framework.
The main aim of the prototype I intend to develop is to allow efficient use of data mining and machine learning algorithm by non experts. Concretely, I wish as a first step to be able to give the user a workflow answering his modelling need, that I elicit from his dataset and expression of his need. In order to perform this elicitation, I intend to run a process that implies designing and executing learning workflows on his data.
Is it possible from within the Orange framework (or else from an above "supervising" framework) to automatically define and execute learning workflows ?
Yes, it is.
We have actually experimented with a "recommendation system" that would suggest parts of the workflow to the user. It wasn't useful. Also, there have been various meta-learning projects in the past and I think that the general consensus is --- it doesn't work. ;)
But if you intend to try it, Orange is suitable platform for this.
#hoijui: Orange no longer has any other mailing list or forum, just this one. Developers follow Stack overflow and answer questions there.

Hello world for spoken NLP interaction (like Siri)?

If I have zero experience developing spoken NLP interaction, what is the easiest way for me to make a Hello World, and begin experimenting from there?
Any platforms and programming languages and APIs are relevant here, as long as they give me the most basic equivalent of Hello World AND are flexible enough that I could potentially play around for a few hours in that environment using various public REST APIs and glueing strings/regex together and get some useful demo apps out of it.
Please offer kind suggestions to improve this question if it's not clear enough, since it's probably a topic on a lot of programmers' minds and something which is not yet mainstream.
If you want to play with building blocks, you can use:
either SphinxCMU or the Google's voice recognition API (used by Chrome) to turn the user's voice into text
the Wit API to extract meaning (the user intent/question) from text
and then our own module to build an answer
Start looking on existing projects like this one:
Pi-Voice
read the code and analyze what they are doing. Those are toys anyway since technology behind Siri is quite complex
To get a deep understanding of the technology read the papers from the CALO project which was a Siri base:
Calo Project Website

How to improve programming knowledge, and how to test the current state of it?

Hey guys, I'm very excited about how experienced I am in programming.
The first, working program that I have written, was in 2004 with C. Since this I have tried many programming languages, now got stuck with php. Currently I'm working as a web-developer, and everyones pleased with the work I do. Except me :) Thats the reason why i want to know, how high my experience and my knowledge is.
Could you tell me, some tips, tricks, test, or anything, on what I can see how much I need to learn and practice to get a mastermind in programming? (at first place in php)
I'm also a programmer who doesn't like to stagnate, so perhaps I can offer a few tips:
1) What's your weakest area? Networking? Graphics? Regex? What is the one area that if someone asked you "I need a program that can do X" and that X scares you what is it. Now study as much as you can on that subject. Hack out a few prototypes and make it so that you understand it allot better. I used to hate Regex commands, now I use them whenever I can.
2) Study "different" languages. I'd recommend learning a "functional" language such as Erlang, Lisp, or perhaps certain aspects of Python. Get a book on "functional programming" and read it through, and then think how you can apply these concepts to your current work. Start using map() and filter() in python instead of for loops, etc.
3) If you're doing web programming, get yourself a massive set of data and start doing some number crunching. A while back I was playing EVE Online, so I fired up SQL Server Express and hacked out some market analysis routines in it. It was around 4 GB of data the server crunched through, but I learned allot about SQL Server in the mean time.
I recently was watching a lecture on Lisp and the Professor said: "Computer Science is not about computers and not about science. It's about knowledge, and how to manipulate that knowledge to obtain more knowledge" So true, so the more tools you have for manipulating and gaining knowledge, the better programmer you'll be.
Start a new programming project and take your time to make every single aspect of it as good as possible.
Use git or Mercurial for source control. Use submodules (or whatever the Mercurial equivalent is) to manage external frameworks. Set up post-commit hooks to run your unit tests and zip up your executable. Use new branches for everything and do octopus-merges to get them all back into a single branch.
Script everything you do. Deploying a new version of your app (including website updates!) should be as simple as running a single script.
Make your app 100% localized. Deploying in a new language should be as easy as sending a strings file out to a volunteer to get translated, then popping that translated file into your source code, no additional work needed.
Optimize, optimize, optimize. Spend the extra week to make your app load 100ms faster.
Refactor, refactor, refactor. Don't just go for orthogonality and abstraction, aim for pure code beauty. Using your classes should be like using Duplo blocks, they just snap into place with not an error in sight.
Unit test everything. 100% coverage. Don't let a single regression go unannounced. Automate the entire test suite so that you can't promote your code without all the tests passing.
Put your app in the cloud. If you're writing something for the desktop or a mobile device, give your users a way to sync their data to a website. Write that website. If your project is web-based, give your users a mobile or desktop front-end to access their accounts.
Accessibility. Handicapped users should be thrilled with the care you put into designing your app.
Keep in mind that if you do everything I listed here, you'll never ship, but you'll be a well-rounded a developer, an asset to most any team.

Resources