This commit is contained in:
Zeke Sikelianos 2017-07-07 09:00:02 -07:00
Родитель 5f6bcf2d92
Коммит 00b8746963
4 изменённых файлов: 71 добавлений и 48 удалений

Просмотреть файл

@ -19,7 +19,8 @@ class Issue {
this.commentsAfterClosure = this.getCommentsAfterClosure()
this.commentsAfterClosureCount = this.commentsAfterClosure.length
this.sentimentScore = this.getSentimentScore()
this.sentimentScore = this.getSentimentScore(this.comments)
this.postClosureSentimentScore = this.getSentimentScore(this.commentsAfterClosure)
this.positiveWords = this.getPositiveWords().join(', ')
this.negativeWords = this.getNegativeWords().join(', ')
return this
@ -34,16 +35,16 @@ class Issue {
})
}
getSentimentScore () {
if (!this.comments.length) return 0
getSentimentScore (comments) {
if (!comments || !comments.length) return 0
const total = this.comments
const total = comments
.map(comment => {
comment.sentiment = sentiment(comment.body)
return comment.sentiment.score
})
.reduce((a, b) => {return a + b}, 0)
return Math.round(total / this.comments.length)
return Math.round(total / comments.length)
}
getPositiveWords () {

Просмотреть файл

@ -1,9 +1,9 @@
{
"name": "electron-electron-issues",
"name": "electron-issues",
"version": "1.0.0",
"description": "An experiment to better understand the issues filed on electron/electron",
"main": "index.js",
"repository": "https://github.com/electron/electron-electron-issues",
"repository": "https://github.com/electron/electron-issues",
"author": "zeke",
"license": "MIT",
"dependencies": {

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -2,7 +2,7 @@ const issues = require('.')
const tableify = require('tableify')
// const {pick} = require('lodash')
const {titleCase} = require('change-case')
const MAX = 20
const MAX = 30
let datasets = {
closed_issues_with_comments_after_closure: {
@ -21,30 +21,11 @@ let datasets = {
.value()
},
open_issues_with_high_sentiment_score: {
closed_issues_with_low_sentiment_score_after_closure: {
data: issues
.filter('open')
.filter(issue => issue.commentCount > 3)
.sortBy('sentimentScore')
.reverse()
.slice(0, MAX)
.map(issue => {
return {
'#': issue.linkedNumber,
title: issue.linkedTitle,
words: issue.positiveWords,
comments: issue.commentCount,
sentiment: issue.sentimentScore
}
})
.value()
},
open_issues_with_low_sentiment_score: {
data: issues
.filter('open')
.filter(issue => issue.commentCount > 3)
.sortBy('sentimentScore')
.filter('closed')
.filter(issue => issue.commentCount > 2)
.sortBy('postClosureSentimentScore')
.slice(0, MAX)
.map(issue => {
return {
@ -52,7 +33,7 @@ let datasets = {
title: issue.linkedTitle,
words: issue.negativeWords,
comments: issue.commentCount,
sentiment: issue.sentimentScore
sentiment: issue.postClosureSentimentScore
}
})
.value()
@ -94,8 +75,7 @@ let datasets = {
})
.value()
},
oldest_open_issues: {
data: issues
.filter('open')
@ -141,6 +121,43 @@ let datasets = {
}
})
.value()
},
open_issues_with_high_sentiment_score: {
data: issues
.filter('open')
.filter(issue => issue.commentCount > 3)
.sortBy('sentimentScore')
.reverse()
.slice(0, MAX)
.map(issue => {
return {
'#': issue.linkedNumber,
title: issue.linkedTitle,
words: issue.positiveWords,
comments: issue.commentCount,
sentiment: issue.sentimentScore
}
})
.value()
},
open_issues_with_low_sentiment_score: {
data: issues
.filter('open')
.filter(issue => issue.commentCount > 3)
.sortBy('sentimentScore')
.slice(0, MAX)
.map(issue => {
return {
'#': issue.linkedNumber,
title: issue.linkedTitle,
words: issue.negativeWords,
comments: issue.commentCount,
sentiment: issue.sentimentScore
}
})
.value()
}
}