Skip to content

Commit

Permalink
Merge pull request #879 from AI4Bharat/raw_audio_dur_sentence_count_m…
Browse files Browse the repository at this point in the history
…eta_analytics_chart

included raw aud duration, aud word count, conversation sentence count charts in meta analytics
  • Loading branch information
ishvindersethi22 authored Jan 3, 2024
2 parents 3c61911 + 1394f34 commit bb4c80e
Show file tree
Hide file tree
Showing 7 changed files with 422 additions and 57 deletions.
15 changes: 15 additions & 0 deletions src/redux/reducers/Progress/MetaAnalytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,21 @@ const diffAnnotationReview = (payload) => {
annotation_cumulative_word_count: (value?.ann_cumulative_word_count),
review_cumulative_word_count: (value?.rew_cumulative_word_count),
diff_annotation_review: (value?.ann_cumulative_word_count - value?.rew_cumulative_word_count),

annotation_cumulative_sentance_count: (value?.total_ann_sentance_count),
review_cumulative_sentance_count: (value?.total_rev_sentance_count),
diff_annotation_review_sentance_count: (value?.total_ann_sentance_count - value?.total_rev_sentance_count),

annotation_audio_word_count: (value?.ann_audio_word_count),
review_audio_word_count: (value?.rev_audio_word_count),
diff_annotation_review_audio_word: (value?.ann_audio_word_count - value?.rev_audio_word_count),

annotation_raw_aud_duration:(value?.ann_raw_aud_duration),
review_raw_aud_duration:(value?.rew_raw_aud_duration),
annotation_raw_aud_duration_tohour:(value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),
review_raw_aud_duration_tohour:(value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),
diff_annotation_review_raw_aud_duration_tohour:(value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600 - value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),

annotation_aud_duration:(value?.ann_cumulative_aud_duration),
review_aud_duration:(value?.rew_cumulative_aud_duration),
annotation_aud_duration_tohour:(value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[2]/3600),
Expand Down
15 changes: 15 additions & 0 deletions src/redux/reducers/WorkspaceDetails/GetMetaAnalytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@ const diffAnnotationReview = (payload) => {
annotation_cumulative_word_count: (value?.ann_cumulative_word_count),
review_cumulative_word_count: (value?.rew_cumulative_word_count),
diff_annotation_review: (value?.ann_cumulative_word_count - value?.rew_cumulative_word_count),

annotation_cumulative_sentance_count: (value?.total_ann_sentance_count),
review_cumulative_sentance_count: (value?.total_rev_sentance_count),
diff_annotation_review_sentance_count: (value?.total_ann_sentance_count - value?.total_rev_sentance_count),

annotation_audio_word_count: (value?.ann_audio_word_count),
review_audio_word_count: (value?.rev_audio_word_count),
diff_annotation_review_audio_word: (value?.ann_audio_word_count - value?.rev_audio_word_count),

annotation_raw_aud_duration:(value?.ann_raw_aud_duration),
review_raw_aud_duration:(value?.rew_raw_aud_duration),
annotation_raw_aud_duration_tohour:(value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),
review_raw_aud_duration_tohour:(value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),
diff_annotation_review_raw_aud_duration_tohour:(value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600 - value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.rew_raw_aud_duration?.split(':')?.map(Number)?.[2]/3600),

annotation_aud_duration:(value?.ann_cumulative_aud_duration),
review_aud_duration:(value?.rew_cumulative_aud_duration),
annotation_aud_duration_tohour:(value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[0] * 1 + value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[1]/ 60 + value?.ann_cumulative_aud_duration?.split(':')?.map(Number)?.[2]/3600),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,75 +6,130 @@ import { useEffect, useState } from "react";
import ResponsiveChartContainer from "../../../component/common/ResponsiveChartContainer"

export default function AudioDurationChart(props) {
const { analyticsData } = props;
const { analyticsData, graphCategory } = props;
const classes = DatasetStyle();
const [totalAudioHours, setTotalAudioHours] = useState();
const [totalAnnotationAudioHours, setTotalAnnotationAudioHours] = useState();
const [totalReviewAudioHours, setTotalReviewAudioHours] = useState();
const [data, setData] = useState([]);

useEffect(() => {
analyticsData?.sort(
(a, b) =>
b.annotation_aud_duration_tohour - a.annotation_aud_duration_tohour
);
setData(analyticsData);
let allAnnotatorAudioHours = 0;
let allReviewAudioHours = 0;
var languages;
analyticsData?.map((element, index) => {
allAnnotatorAudioHours +=
element.annotation_aud_duration_tohour;
allReviewAudioHours += element.review_aud_duration_tohour;
languages = element.languages;
});

setTotalAnnotationAudioHours(allAnnotatorAudioHours);
setTotalReviewAudioHours(allReviewAudioHours);
setTotalAudioHours(
allAnnotatorAudioHours + allReviewAudioHours
);
if (graphCategory=="rawAudioDuration"){
analyticsData?.sort(
(a, b) =>
b.annotation_raw_aud_duration_tohour - a.annotation_raw_aud_duration_tohour
);
setData(analyticsData);
let allAnnotatorAudioHours = 0;
let allReviewAudioHours = 0;
var languages;
analyticsData?.map((element, index) => {
allAnnotatorAudioHours +=
(element.annotation_raw_aud_duration_tohour?element.annotation_raw_aud_duration_tohour:0);
allReviewAudioHours += (element.review_raw_aud_duration_tohour?element.review_raw_aud_duration_tohour:0);
languages = element.languages;
});
setTotalAnnotationAudioHours(allAnnotatorAudioHours);
setTotalReviewAudioHours(allReviewAudioHours);
setTotalAudioHours(
allAnnotatorAudioHours + allReviewAudioHours
);
}
else{
analyticsData?.sort(
(a, b) =>
b.annotation_aud_duration_tohour - a.annotation_aud_duration_tohour
);
setData(analyticsData);
let allAnnotatorAudioHours = 0;
let allReviewAudioHours = 0;
var languages;
analyticsData?.map((element, index) => {
allAnnotatorAudioHours +=
element.annotation_aud_duration_tohour;
allReviewAudioHours += element.review_aud_duration_tohour;
languages = element.languages;
});
setTotalAnnotationAudioHours(allAnnotatorAudioHours);
setTotalReviewAudioHours(allReviewAudioHours);
setTotalAudioHours(
allAnnotatorAudioHours + allReviewAudioHours
);
}
}, [analyticsData]);

const CustomTooltip = ({ active, payload, label }) => {
if (active && payload && payload.length) {
return (
<div className={classes.toolTips}>
<p style={{ fontWeight: "bold" }}>
{graphCategory=='rawAudioDuration'?<p style={{ fontWeight: "bold" }}>
{`${label}`}
<p style={{ fontWeight: "normal" }}>
{`Total hours : ${
payload[0].payload.annotation_aud_duration_tohour
payload[0].payload.annotation_raw_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload.annotation_aud_duration_tohour
payload[0].payload.annotation_raw_aud_duration_tohour
)
: 0
}`}
<p style={{ fontWeight: "normal" }}>
{`Total duration : ${payload[0].payload.annotation_aud_duration}`}
{`Total duration : ${payload[0].payload.annotation_raw_aud_duration}`}



<p style={{ color: "rgba(243, 156, 18 )" }}>
{`Annotation duration : ${
payload[0].payload.diff_annotation_review_aud_duration_tohour
payload[0].payload.diff_annotation_review_raw_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload
.diff_annotation_review_aud_duration_tohour
.diff_annotation_review_raw_aud_duration_tohour
)
: 0
}`}
<p style={{ color: "rgba(35, 155, 86 )" }}>{`Review duration : ${
payload[0].payload.review_aud_duration_tohour
payload[0].payload.review_raw_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload.review_aud_duration_tohour
payload[0].payload.review_raw_aud_duration_tohour
)
: 0
}`}</p>
</p>
</p>
</p>
</p>:
<p style={{ fontWeight: "bold" }}>
{`${label}`}
<p style={{ fontWeight: "normal" }}>
{`Total hours : ${
payload[0].payload.annotation_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload.annotation_aud_duration_tohour
)
: 0
}`}
<p style={{ fontWeight: "normal" }}>
{`Total duration : ${payload[0].payload.annotation_aud_duration}`}
<p style={{ color: "rgba(243, 156, 18 )" }}>
{`Annotation duration : ${
payload[0].payload.diff_annotation_review_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload
.diff_annotation_review_aud_duration_tohour
)
: 0
}`}
<p style={{ color: "rgba(35, 155, 86 )" }}>{`Review duration : ${
payload[0].payload.review_aud_duration_tohour
? new Intl.NumberFormat("en").format(
payload[0].payload.review_aud_duration_tohour
)
: 0
}`}</p>
</p>
</p>
</p>
</p>
}
</div>
);
}
Expand Down Expand Up @@ -105,7 +160,7 @@ export default function AudioDurationChart(props) {
padding: "16px 0",
}}
>
Audio Duration Dashboard
{graphCategory=="rawAudioDuration"?"Raw Audio Duration Dashboard":"Audio Duration Dashboard"}
</Typography>
</Box>
<Box className={classes.topBarInnerBox}>
Expand Down Expand Up @@ -198,15 +253,15 @@ export default function AudioDurationChart(props) {
/>
<Legend verticalAlign="top" />
<Bar
dataKey="review_aud_duration_tohour"
dataKey={graphCategory=="rawAudioDuration"?"review_raw_aud_duration_tohour":"review_aud_duration_tohour"}
barSize={30}
name="Review"
stackId="a"
fill="rgba(35, 155, 86 )"
cursor="pointer"
/>
<Bar
dataKey="diff_annotation_review_aud_duration_tohour"
dataKey={graphCategory=="rawAudioDuration"?"diff_annotation_review_raw_aud_duration_tohour":"diff_annotation_review_aud_duration_tohour"}
barSize={30}
name="Annotation"
stackId="a"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { translate } from "../../../../../config/localisation";
import InfoIcon from '@mui/icons-material/Info';
import { MenuProps } from "../../../../../utils/utils";
import WordCountMetaAnalyticsChart from './WordCountMetaAnalyticsChart';
import SentanceCountMetaAnalyticsChart from './SentanceCountMetaAnalyticsChart';

export default function MetaAnalytics(props) {
const dispatch = useDispatch();
Expand Down Expand Up @@ -130,6 +131,8 @@ export default function MetaAnalytics(props) {
if (analyticsData.length && audioProjectTypes.includes(analyticsData[0].projectType)){
return (<Grid key={_index} style={{marginTop:"15px"}}>
<AudioDurationChart analyticsData={analyticsData}/>
<AudioDurationChart analyticsData={analyticsData} graphCategory='rawAudioDuration'/>
<WordCountMetaAnalyticsChart analyticsData={analyticsData} graphCategory='audioWordCount'/>
</Grid>)}
if(analyticsData.length &&
(translationProjectTypes.includes(analyticsData[0].projectType) ||
Expand All @@ -138,6 +141,7 @@ export default function MetaAnalytics(props) {
){
return <Grid key={_index} style={{marginTop:"15px"}}>
<WordCountMetaAnalyticsChart analyticsData={analyticsData}/>
{analyticsData[0].projectType.includes("Conversation") && <SentanceCountMetaAnalyticsChart analyticsData={analyticsData}/>}
</Grid>
}
})
Expand Down
Loading

0 comments on commit bb4c80e

Please sign in to comment.