O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Building a Knowledge Graph for the International Space Station

Using Neo4j to build a lessons learned database at NASA.

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Building a Knowledge Graph for the International Space Station

  1. 1. Knowledge Architecture Graphing Your Knowledge David Meza 2019/04/09 1 / 31
  2. 2. 2 / 31
  3. 3. 3 / 31
  4. 4. 4 / 31
  5. 5. 5 / 31
  6. 6. 6 / 31
  7. 7. 7 / 31
  8. 8. 8 / 31
  9. 9. 9 / 31
  10. 10. Purpose & Overview Demonstrate a sample of text analysis techniques and approaches to getting value out of text information Background and Problems Sentiment Analysis Classification Information Search & Extraction 10 / 31
  11. 11. Background At the completion of each International Space Station (ISS) expedition, the ISS Program office schedules a series of intensive debriefs with returning U.S. crew members and International Partner crew members to determine individual observations and concerns related to working and living on board the ISS. An estimated 20 to 25 post­mission debriefs are conducted after each expedition; these debriefs address topics related to specific disciplines and systems, including habitability and human factors, logistics and maintenance, payloads, stowage, food, procedures, etc. (Schuh et al. 2011) 11 / 31
  12. 12. 12 / 31
  13. 13. 13 / 31
  14. 14. Problem Statement The debriefs have resulted in approximately 80,000 crew comments, with each comment averaging roughly 114 words; the equivalent of over 90 copies of Harper Lee's To Kill a Mocking Bird. The quantity and raw text format makes human comprehension difficult to answer questions such as: How do the astronauts view various topics and systems? What are the most important issues affecting space habitability? How have perceptions on various topics and systems changed over time? Can we automatically summarize content? Can we search and extract specific content or recommendations? 14 / 31
  15. 15. Sentiment Theory The algorithm utilizes a sentiment dictionary to tag polarized words. A context cluster   of words is pulled from around this polarized word and are tagged as neutral  , negator  , amplifier  , or de­amplifier  . Each polarized word is then weighted by a constant value (0.8) along with the number and position of the valence shifters directly surrounding the positive or negative word. Last, these context clusters   are summed and divided by the square root of the word count   yielding an unbounded polarity score  . x T i x 0 i x N i x a i x d i x T i (√n) (δ) δ = x T i √n x T i = ∑ ((1 + c(x A i − x D i )) ∗ w(−1) ∑ x n i ) x A i = ∑(wneg ⋅ x a i ) x D i = max(x D ′ i , −1) x D ′ i = ∑(−wneg ⋅ x a i + x d i ) wneg = (∑ x N i ) mod 2 15 / 31
  16. 16. Sentiment Theory Sentence Word Demonstration Score I love ISS polarized word 0.577 I hate ISS polarized word ­0.577 I barely love ISS de­amplifier & polarized word 0.100 I really love ISS amplifier & polarized word 0.900 I am the ISS neutral 0.000 I don't love ISS negator & polarized word ­0.500 I don't not love ISS negator & negator & polarized word 0.447 I love ISS and I hate mondays polarized word & polarized word 0.000 16 / 31
  17. 17. Sentiment Implementation [[1]] [1] ­0.3162278 [[2]] [1] ­0.1924501 [[3]] [1] 0.2041241 # Load libraries library(qdap) # Define a Comment comment <­ c("Equipment malfunctions will also occur, particularly du                  testing. In manned flight we must regard every malfu                  observed peculiarity in the behavior or a system as                   disaster. Only when the cause is understood and a ch                  made and verified, can we proceed with the flight pr # Extract Sentences sentences <­ sent_detect(comment) # Apply polarity algorithm to each sentence scores <­ lapply(sentences, function(x){polarity(x,                 polarity.frame = opshab.sent.dict)$group[,4]}) 17 / 31
  18. 18. Sentiment Visualizations "Equipment malfunctions will also occur, particularly during subsystem development testing. In manned flight we must regard every malfunction, and, in fact, every observed peculiarity in the behavior or a system as an important warning of potential disaster. Only when the cause is understood and a change to eliminate it has been made and verified, can we proceed with the flight program. " ­F.J. Bailey Jr. NASA 18 / 31
  19. 19. Chord Diagram 0 0 50 100 0 0 50 0 0 50 0 0 0 0 0 50 100 150 200 0 50 100 150 200 Procedures Equipm ent/Technology Time/Schedule Operations Communication/Information Stowage Health/Safety Environment General Personal/Relational Positive N egative Category Comment Polarity 19 / 31
  20. 20. Box Plot −1 −0.5 0 0.5 1 Personal/Relational Time/Schedule Procedures General Communication/Information Equipment/Technology Stowage Operations Environment Health/Safety Comment Polarity 20 / 31
  21. 21. Bubble Plot 9 7 4 35/36 33/34 31/32 3 28/29 26/27 24/25 22/23 20/21 19/20 18 16/17 15 14 13 11 1 −1 −0.5 0 0.5 1 Mission Comment Polarity 21 / 31
  22. 22. Trends 2002 2004 2006 2008 2010 2012 ­0.5 0.0 0.5 1.0 Communication/Information ­0.5 0.0 0.5 Comment.Polarity Mission.Start Comment.Polarity 22 / 31
  23. 23. Classification Theory Consider the following two (short) documents:    = "I like ISS"    = "I hate ISS",    one can construct a document­term matrix such as:  Document I like hate ISS 1 1 0 1 1 0 1 1   Ward's method begins with all clusters as a singletons. A recursive algorithm is applied to minimize the total within­cluster variance. The initial cluster distances in Ward's minimum variance method are therefore defined to be the squared Euclidean distance between points: X1 X2 X1 X2 dij = d({Xi}, {Xj}) = ∥Xi − Xj∥ 2 23 / 31
  24. 24. Classification Implementation # Load libraries library(tm) library(ape) # Create Corpus docs <­ Corpus(VectorSource(documents))  # Clean up documents docs <­ tm_map(docs, content_transformer(tolower)) docs <­ tm_map(docs, removePunctuation) docs <­ tm_map(docs, removeNumbers) docs <­ tm_map(docs, removeWords, tm::stopwords("english")) docs <­ tm_map(docs, stripWhitespace) docs <­ tm_map(docs,stemDocument) # Perform Clustering dtm <­ DocumentTermMatrix(docs) m <­ as.matrix(dtm) d <­ dist(m) groups <­ hclust(d, method="ward.D") # plot plot(as.phylo(groups), type="fan") 24 / 31
  25. 25. Classification Visualizations 25 / 31
  26. 26. Classification Result When asked if the times the crewWhen asked if the times the crew experienced high noise levels on ISS were caused by on ISS were caused by working behind the Service Module panels, one RSA crewmember indicated in the forwardworking behind the Service Module panels, one RSA crewmember indicated in the forward end cone, where the SK­V is located.end cone, where the SK­V is located.In general you could say in the SM they hadIn general you could say in the SM they had noise behind the SM panels, the forward cone in particular. , the forward cone in particular.   When asked about theWhen asked about the WHC fan noise, the CSA crewmember said it was a little more like a, the CSA crewmember said it was a little more like a resident tone. The one on orbit doesn't sound like that and it sounds more mechanical. The one on orbit doesn't sound like that and it sounds more mechanical. TheThe separator made aseparator made a grinding noise and the one on Earth has more of a and the one on Earth has more of a hum to it.  to it. The transitionThe transition sounds similar. sounds similar.   Regarding Robonaut, the CSA crewmember is aware there is some sort ofRegarding Robonaut, the CSA crewmember is aware there is some sort of noise constraint that they have to take it down because it has athat they have to take it down because it has a noise clock running, that is bogus. , that is bogus. TheThe crewmember thinks Robonaut decreases thecrewmember thinks Robonaut decreases the noise in the Lab because it  because it absorbs sound; it is; it is silent. If folks are worried about theIf folks are worried about the noise then there are a lot of other things they should then there are a lot of other things they should worry about first. worry about first. That constraint should be removed, it is silly. That constraint should be removed, it is silly. The NASA crewmember saidThe NASA crewmember said they couldn't tell when it was they couldn't tell when it was making noise. 26 / 31
  27. 27. Information Search & Extraction Theory Document I like hate ISS 1 1 0 1 1 0 1 1 We can then weight the documents Where:   is the raw frequency of a term in a document : total number of documents in the corpus  is the number of documents where the term   appears D1 D2 tfidf(t, d, D) = tf(t, d) ⋅ idf(t, D) tf(t, d) idf(t, D) = log[ ] N 1 + |d ∈ D : t ∈ d| N N = | D | |d ∈ D : t ∈ d| t 27 / 31
  28. 28. Once the weightings have been established, we can compare the similarity of the vectors in the document term vector space. The way we compare the similarity of the vectors is by using the cosine similarity  where   and   are components of vectors   and cos(θ) = = →A⋅ →B || →A|| || →B|| ∑ n i=1 AiBi √∑ n i=1 A 2 i √∑ n i=1 B 2 i Ai Bi →A →B 28 / 31
  29. 29. Information Search & Extraction Implementation # Load Libraries #devtools::install_github﴾"daftmath/orion", force=TRUE﴿ library(orion) # Create weighted document term matrix mat <­ orion_prep(COMMENT) # Calculate cosine similarity between search vector and documents result <­ orion_search(mat, "nutrition") # Store results sorted by ranking df <­ arrange(data.frame(COMMENT, result), ­result) 29 / 31
  30. 30. Information Search & Extraction Result When asked if the US When asked if the US food warmer heated the heated the food adequately, the RSA crewmember saidadequately, the RSA crewmember said yes.yes.    When asked how long it took to heat theWhen asked how long it took to heat the food in the US in the US food warmer, the RSA crewmember, the RSA crewmember said about 15 to 20 minutes.said about 15 to 20 minutes.    The CSA crewmember said the The CSA crewmember said the food was great. The crew  The crew ate well and tried toand tried to eat everything.. The crew tried to find the oldest The crew tried to find the oldest food on station andon station and eat that first. Overall, the CSAthat first. Overall, the CSA crewmember was delighted with what was onboard forcrewmember was delighted with what was onboard for food. There was variety and lots of. There was variety and lots of good quality items and it was just really impressive so the crew was very happy with thegood quality items and it was just really impressive so the crew was very happy with the food. 30 / 31
  31. 31. Thank You For Your Time! Questions???? @davidmeza1 Bryant, C., Schuh, S., Schoenstein, N., & Meza, D. (2017). Understanding the International Space Station Crew Perspective Following Long Duration Missions Through Analytics and Visualization of Crew Feedback. In Advances in Usability and User Experience (Vol. 607, pp. 74–86). Springer International Publishing. 31 / 31