How to get started on Information Extraction?

前端 未结 8 1756
夕颜
夕颜 2021-02-03 13:42

Could you recommend a training path to start and become very good in Information Extraction. I started reading about it to do one of my hobby project and soon realized that I wo

8条回答
  •  南旧
    南旧 (楼主)
    2021-02-03 14:07

    You don't need to be good at math to do IE just understand how the algorithm works, experiment on the cases for which you need an optimal result performance, and the scale with which you need to achieve target accuracy level and work with that. You are basically working with algorithms and programming and aspects of CS/AI/Machine learning theory not writing a PhD paper on building a new machine-learning algorithm where you have to convince someone by way of mathematical principles why the algorithm works so I totally disagree with that notion. There is a difference between practical and theory - as we all know mathematicians are stuck more on theory then the practicability of algorithms to produce workable business solutions. You would, however, need to do some background reading both books in NLP as well as journal papers to find out what people found from their results. IE is a very context-specific domain so you would need to define first in what context you are trying to extract information - How would you define this information? What is your structured model? Supposing you are extracting from semi and unstructured data sets. You would then also want to weigh out whether you want to approach your IE from a standard human approach which involves things like regular expressions and pattern matching or would you want to do it using statistical machine learning approaches like Markov Chains. You can even look at hybrid approaches.

    A standard process model you can follow to do your extraction is to adapt a data/text mining approach:

    pre-processing - define and standardize your data to extraction from various or specific sources cleansing your data

    segmentation/classification/clustering/association - your black box where most of your extraction work will be done

    post-processing - cleansing your data back to where you want to store it or represent it as information

    Also, you need to understand the difference between what is data and what is information. As you can reuse your discovered information as sources of data to build more information maps/trees/graphs. It is all very contextualized.

    standard steps for: input->process->output

    If you are using Java/C++ there are loads of frameworks and libraries available you can work with.

    Perl would be an excellent language to do your NLP extraction work with if you want to do a lot of standard text extraction.

    You may want to represent your data as XML or even as RDF graphs (Semantic Web) and for your defined contextual model you can build up relationship and association graphs that most likely will change as you make more and more extractions requests. Deploy it as a restful service as you want to treat it as a resource for documents. You can even link it to taxonomized data sets and faceted searching say using Solr.

    Good sources to read are:

    • Handbook of Computational Linguistics and Natural Language Processing
    • Foundations of Statistical Natural Language Processing
    • Information Extraction Applications in Prospect
    • An Introduction to Language Processing with Perl and Prolog
    • Speech and Language Processing (Jurafsky)
    • Text Mining Application Programming
    • The Text Mining Handbook
    • Taming Text
    • Algorithms of Intelligent Web
    • Building Search Applications
    • IEEE Journal

    Make sure you do a thorough evaluation before deploying such applications/algorithms into production as they can recursively increase your data storage requirements. You could use AWS/Hadoop for clustering, Mahout for large scale classification amongst others. Store your datasets in MongoDB or unstructured dumps into jackrabbit, etc. Try experimenting with prototypes first. There are various archives you can use to base your training on say Reuters corpus, tipster, TREC, etc. You can even check out alchemy API, GATE, UIMA, OpenNLP, etc.

    Building extractions from standard text is easier than say a web document so representation at pre-processing step becomes even more crucial to define what exactly it is you are trying to extract from a standardized document representation.

    Standard measures include precision, recall, f1 measure amongst others.

提交回复
热议问题