Guest User

Untitled

a guest
Mar 4th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. require('dotenv').config();
  2. const fs = require('fs');
  3.  
  4. const tripReportData = require('./data/trip-reports.json');
  5.  
  6. const condensedPeakReports = tripReportData.map((peak) => {
  7. const condensedReports = peak.tripReports.map((trip) => {
  8. return trip.report;
  9. }).join(' ');
  10. return {name: peak.peakName, text: condensedReports};
  11. });
  12.  
  13. const ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
  14.  
  15. const tone_analyzer = new ToneAnalyzerV3({
  16. username: process.env.WATSON_USERNAME,
  17. password: process.env.WATSON_PASSWORD,
  18. version_date: '2017-02-27'
  19. });
  20.  
  21. const requestToneAnalysis = (text) => {
  22. const params = {
  23. tone_input: text,
  24. content_type: 'text/plain',
  25. sentences: false
  26. };
  27.  
  28. return new Promise((resolve, reject) => {
  29. tone_analyzer.tone(params, (err, toneResults) => {
  30. if (err) {
  31. reject(err);
  32. } else {
  33. resolve(toneResults);
  34. }
  35. });
  36. });
  37. };
  38.  
  39. const groupedAnalysis = condensedPeakReports.reduce(async (acc, peak) => {
  40. const dataArray = await acc;
  41. let peakToneAnalysis;
  42. try {
  43. peakToneAnalysis = await requestToneAnalysis(peak.text);
  44. console.log(peak.name, 'analyzed.');
  45. } catch(e) {
  46. console.error(e);
  47. }
  48.  
  49. dataArray.push({name: peak.name, toneAnalysis: peakToneAnalysis});
  50. return dataArray;
  51. }, Promise.resolve([]));
  52.  
  53. groupedAnalysis.then(result => {
  54. const output = JSON.stringify(result, null, 2);
  55.  
  56. fs.writeFile('./data/tone-analysis.json', output, 'utf8', (err) => {
  57. if (err) throw err;
  58. console.log('File was saved.');
  59. });
  60. });
Add Comment
Please, Sign In to add comment