J'ai utilisé le Stanford CoreNLP wrapper for Apache Spark pour faire l'analyse NEP et j'ai trouvé que cela fonctionnait bien. Cependant, je veux étendre l'exemple simple à l'endroit où je peux mapper l'analyse à un identifiant de base de données original. Voir ci-dessous, j'ai ajouté deux autres lignes à l'exemple simple.Comment indexer l'analyse Spark CoreNLP?
val input = Seq(
(1, "<xml>Apple is located in California. It is a great company.</xml>"),
(2, "<xml>Google is located in California. It is a great company.</xml>"),
(3, "<xml>Netflix is located in California. It is a great company.</xml>")
).toDF("id", "text")
input.show()
input: org.apache.spark.sql.DataFrame = [id: int, text: string]
+---+--------------------+
| id| text|
+---+--------------------+
| 1|<xml>Apple is loc...|
| 2|<xml>Google is lo...|
| 3|<xml>Netflix is l...|
+---+--------------------+
Je peux alors exécuter ce dataframe à travers l'enveloppe de CoreNLP Spark à faire les deux et l'analyse sentiment NEP. Toutefois, dans la sortie ci-dessous, j'ai perdu la connexion avec les identifiants de lignes de données d'origine.
+--------------------+--------------------+--------------------+---------+
| sen| words| nerTags|sentiment|
+--------------------+--------------------+--------------------+---------+
|Apple is located ...|[Apple, is, locat...|[ORGANIZATION, O,...| 2|
|It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
|Google is located...|[Google, is, loca...|[ORGANIZATION, O,...| 3|
|It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
|Netflix is locate...|[Netflix, is, loc...|[ORGANIZATION, O,...| 3|
|It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
+--------------------+--------------------+--------------------+---------+
Idéalement, je voudrais quelque chose comme ceci:
+--+---------------------+--------------------+--------------------+---------+
|id| sen| words| nerTags|sentiment|
+--+---------------------+--------------------+--------------------+---------+
| 1| Apple is located ...|[Apple, is, locat...|[ORGANIZATION, O,...| 2|
| 1| It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
| 2| Google is located...|[Google, is, loca...|[ORGANIZATION, O,...| 3|
| 2| It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
| 3| Netflix is locate...|[Netflix, is, loc...|[ORGANIZATION, O,...| 3|
| 3| It is a great com...|[It, is, a, great...| [O, O, O, O, O, O]| 4|
+--+---------------------+--------------------+--------------------+---------+
J'ai essayé de créer une UDF, mais je suis incapable de le faire fonctionner.