09-21-2016 05:06 PM
I want to extract names, numbers and emails from text. I thought of doing so using RegEx. So, can someone please help with suggesting a regex that works well in RapidMiner?
Or is there any other process to do so?
Thanks in advance
09-22-2016 04:03 AM
i think it's very hard to design such a general regex. Email addresses are kind of easy with (.+)@(.+)\.(.+) but for names?
Have you tried the aylien Extract Entities operator?
09-22-2016 07:06 AM
Thanks for the suggestion about Extract Entitites. I tried that, it's working,but the accuracy is not good.
for eg- In the database text, there is "Mr Narender Choudhary", it's a name, but, while extracting names, it extracts only Chaoudhary, not the entire name.
Is there any other solution for extracting names or improving this operator?
09-22-2016 08:37 AM
Oh I have this issue all the time. I use the Generate Attributes operator and lots of text parsing. Here's an example of a "building block" I use to take a person's name in the form of "LastName, FirstName MiddleInitial" and creates three new attributes for Last, First and MI.
<?xml version="1.0" encoding="UTF-8"?><process version="7.2.002"> <context> <input/> <output/> <macros/> </context> <operator activated="true" class="process" compatibility="7.2.002" expanded="true" name="Process"> <process expanded="true"> <operator activated="true" class="generate_attributes" compatibility="7.2.002" expanded="true" height="82" name="Generate Attributes" width="90" x="179" y="34"> <list key="function_descriptions"> <parameter key="StudentLastOrSurname" value="upper(prefix([Student_Name],index([Student_Name],",")))"/> <parameter key="FN" value="suffix([Student_Name],length([Student_Name])-length([StudentLastOrSurname])-2)"/> <parameter key="StudentFirstName" value="upper(prefix([FN],index([FN]," ")))"/> <parameter key="StudentMI" value="if(contains([FN]," "), upper(suffix([FN],length([FN])-index([FN]," ")-1)),"")"/> </list> </operator> <portSpacing port="source_input 1" spacing="0"/> <portSpacing port="sink_result 1" spacing="0"/> </process> </operator> </process>
09-23-2016 07:07 AM
I tried your solution with my database, but it didn't work.
Any other way out?
09-26-2016 04:36 AM
Thanks for the help. I worked on it again and the issue is now solved using Extract Entities operator. But, while using this operator - this is what that needs to be kept in mind- the data being analyzed should meaningful (no unnecessary special characters and line breaks), if it's not, it does not give accurate results.
10-25-2016 03:09 AM
Now, that I have a process running perfectly using Extract Entities operator by Aylien. My next step us to create a process on my own, that works at the least, exactly like Aylien, but also, few improvements as an add on. So, will I need to train and test each category within Extract entities or is there any other solution to this?
Need some guidance as to how to proceed for creating something similar to Extract Entities.
Thanks in advance