Quale tecnologia / algoritmo dovrebbe essere usato per astrarre il significato o le parole chiave da un passaggio di testo?

3

Ciao e grazie per la ricerca!

Sfondo

Ho un progetto in cui ho bisogno di astrarre il significato da un passaggio di testo per determinare ciò che il testo sta cercando e quindi abbinare quel testo a un elenco di risultati di ricerca.

Ora ho un po 'di contesto con questo e il seguente scenario è molto vicino, ma non viola la mia NDA con il cliente:

Diciamo che ho una descrizione del lavoro di uno sviluppatore software da un post su Craig's List. Voglio in qualche modo analizzare questa descrizione e indovinare se il post è alla ricerca di uno sviluppatore C #, un DBA, un SDET, uno sviluppatore C ++, ecc. Ancora meglio, sarebbe bello distillare determinati parametri come anni / livello di esperienza ed esperienza con qualsiasi stack particolare (.NET, Java, ecc.)

Una volta che ho astratto la richiesta, ho bisogno di fare riferimento a un database di curriculum (CV) per trovare una serie di corrispondenze classificate, probabilmente usando lo stesso algoritmo o almeno un sistema di tag.

Domanda

Quanto meglio ottengo questo obiettivo? Dovrei cercare di costruire un indice di parole chiave? Elaborazione del linguaggio naturale? Algoritmi evolutivi?

Dobbiamo supporre che l'interazione umana sarà molto minima.

Esempio di postazione di lavoro

Ecco un esempio di Job Posting che ho estratto a caso da Craig's List:

We invite you to bring your career to an environment where talent is rewarded and new ideas are encouraged. At Seattle Children's, the Pacific Northwest’s premier pediatric care center, we offer more than just state-of-the-art facilities and open career growth potential. You will also find a true commitment to our patients and families that reach far beyond the bounds of clinical expertise. The Applications Development Senior position in the Center for Developmental Therapeutics will develop, test, standardize and implement software for high throughput data analysis. This includes system analysis, design, application support, research into standards, and customer/vendor relations management in support of production operations. For example, supporting the integration of different computational approaches into an end-to-end workflow for high throughput data analysis, including applications for proteomics and metabolomics. Participate in all phases of the project lifecycle, including architecture, design, development, alpha, beta, release and production support. The ideal candidate will have a Bachelor's degree in the field and a minimum of three years of experience with software development; working knowledge of JAVA, Spring, AJAX, JSF, Hibernate, JQuery, and JUnit; and solid experience with SQL tuning and understanding the execution plan will be key to this role. Please ensure to complete the job assessment questions right after you submit your application for this opening. Required: - Bachelor's Degree in Computer Science, Math, Business, or related field - Three (3) years software development experience - Working knowledge of JAVA, Spring, AJAX, JSF, Hibernate, JQuery, and JUnit - Solid experience with SQL tuning and understanding the execution plans - Strong understanding of multi-tiered web applications and scalability challenges Preferred: - Five (5) or more years software development experience - Experience developing large software systems - Experience with web services (HTTP, JSON, SOAP, XML), Unix/Linux environments, and distributed systems (HADOOP) - Experience in software and algorithmic development for molecular biology, biotechnology, microarrays or proteomics. We offer competitive pay, generous paid time off, transportation discounts, and employee reward and recognition programs.

Grazie!

Matt

    
posta Matt Cashatt 14.07.2012 - 19:14
fonte

1 risposta

2

Generalmente, la lingua utilizzata negli annunci di lavoro è fondata e utilizza sempre costruzioni simili. Applicare una PNL complessa sarebbe troppo per questo.

Un possibile approccio consiste nell'abbinare i tag assegnati agli annunci di lavoro e riprendere. Un sistema basato su regole sarebbe più veloce da implementare per un set di dati limitato, ma potrebbe essere più difficile da mantenere, ad es. aggiungendo nuove parole chiave. L'approccio di apprendimento automatico può essere più flessibile ma richiede un set di formazione che significa un costo aggiuntivo.

I resumes e gli annunci di lavoro di solito usano frasi un po 'diverse. A volte un candidato non menziona tutte le tecnologie o ne menziona una simile. Puoi migliorare il tuo sistema avendo una tassonomia delle parole chiave: parole chiave principali (tecnologia Web - > HTML; CSS; JavaScript) o parole chiave simili (Python < = > Ruby)

Se disponi di dati esistenti per la corrispondenza tra curricula e annunci di lavoro, puoi sfruttarli utilizzando l'apprendimento automatico. Il sistema impara quali frasi vanno insieme, quali parole chiave sono o non sono importanti, in più puoi definire regole per estrarre caratteristiche più specifiche come esperienza (junior, senior), esperienza offerta (ad esempio in base ai dettagli nella sezione esperienze del curriculum) ) e così via.

    
risposta data 15.07.2012 - 00:15
fonte