suricodes commited on
Commit
fc71123
·
verified ·
1 Parent(s): 1268572

Upload 4 files

Browse files
Files changed (4) hide show
  1. .bashrc +161 -0
  2. 1_Hindi_to_Sindhi_MT.py +83 -0
  3. Dockerfile +18 -0
  4. pages/2_Sindhi_to_Hindi_MT.py +82 -0
.bashrc ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ~/.bashrc: executed by bash(1) for non-login shells.
2
+ # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3
+ # for examples
4
+
5
+ # If not running interactively, don't do anything
6
+ case $- in
7
+ *i*) ;;
8
+ *) return;;
9
+ esac
10
+
11
+ # don't put duplicate lines or lines starting with space in the history.
12
+ # See bash(1) for more options
13
+ HISTCONTROL=ignoreboth
14
+
15
+ # append to the history file, don't overwrite it
16
+ shopt -s histappend
17
+
18
+ # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
19
+ HISTSIZE=1000
20
+ HISTFILESIZE=2000
21
+
22
+ # check the window size after each command and, if necessary,
23
+ # update the values of LINES and COLUMNS.
24
+ shopt -s checkwinsize
25
+
26
+ # If set, the pattern "**" used in a pathname expansion context will
27
+ # match all files and zero or more directories and subdirectories.
28
+ #shopt -s globstar
29
+
30
+ # make less more friendly for non-text input files, see lesspipe(1)
31
+ [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
32
+
33
+ # set variable identifying the chroot you work in (used in the prompt below)
34
+ if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
35
+ debian_chroot=$(cat /etc/debian_chroot)
36
+ fi
37
+
38
+ # set a fancy prompt (non-color, unless we know we "want" color)
39
+ case "$TERM" in
40
+ xterm-color|*-256color) color_prompt=yes;;
41
+ esac
42
+
43
+ # uncomment for a colored prompt, if the terminal has the capability; turned
44
+ # off by default to not distract the user: the focus in a terminal window
45
+ # should be on the output of commands, not on the prompt
46
+ #force_color_prompt=yes
47
+
48
+ if [ -n "$force_color_prompt" ]; then
49
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
50
+ # We have color support; assume it's compliant with Ecma-48
51
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
52
+ # a case would tend to support setf rather than setaf.)
53
+ color_prompt=yes
54
+ else
55
+ color_prompt=
56
+ fi
57
+ fi
58
+
59
+ if [ "$color_prompt" = yes ]; then
60
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
61
+ else
62
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
63
+ fi
64
+ unset color_prompt force_color_prompt
65
+
66
+ # If this is an xterm set the title to user@host:dir
67
+ case "$TERM" in
68
+ xterm*|rxvt*)
69
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
70
+ ;;
71
+ *)
72
+ ;;
73
+ esac
74
+
75
+ # enable color support of ls and also add handy aliases
76
+ if [ -x /usr/bin/dircolors ]; then
77
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
78
+ alias ls='ls --color=auto'
79
+ #alias dir='dir --color=auto'
80
+ #alias vdir='vdir --color=auto'
81
+
82
+ alias grep='grep --color=auto'
83
+ alias fgrep='fgrep --color=auto'
84
+ alias egrep='egrep --color=auto'
85
+ fi
86
+
87
+ # colored GCC warnings and errors
88
+ #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
89
+
90
+ # some more ls aliases
91
+ alias ll='ls -alF'
92
+ alias la='ls -A'
93
+ alias l='ls -CF'
94
+
95
+ # Add an "alert" alias for long running commands. Use like so:
96
+ # sleep 10; alert
97
+ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
98
+
99
+ # Alias definitions.
100
+ # You may want to put all your additions into a separate file like
101
+ # ~/.bash_aliases, instead of adding them here directly.
102
+ # See /usr/share/doc/bash-doc/examples in the bash-doc package.
103
+
104
+ if [ -f ~/.bash_aliases ]; then
105
+ . ~/.bash_aliases
106
+ fi
107
+
108
+ # enable programmable completion features (you don't need to enable
109
+ # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
110
+ # sources /etc/bash.bashrc).
111
+ if ! shopt -oq posix; then
112
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
113
+ . /usr/share/bash-completion/bash_completion
114
+ elif [ -f /etc/bash_completion ]; then
115
+ . /etc/bash_completion
116
+ fi
117
+ fi
118
+ ./caa
119
+
120
+ # >>> conda initialize >>>
121
+ # !! Contents within this block are managed by 'conda init' !!
122
+ __conda_setup="$('/home/eb2mt_4/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
123
+ if [ $? -eq 0 ]; then
124
+ eval "$__conda_setup"
125
+ else
126
+ if [ -f "/home/eb2mt_4/anaconda3/etc/profile.d/conda.sh" ]; then
127
+ . "/home/eb2mt_4/anaconda3/etc/profile.d/conda.sh"
128
+ else
129
+ export PATH="/home/eb2mt_4/anaconda3/bin:$PATH"
130
+ fi
131
+ fi
132
+ unset __conda_setup
133
+ # <<< conda initialize <<<
134
+
135
+
136
+ #TOOLS
137
+ XMLRPC=/app/moses/tools/xmlrpc
138
+ GIZA=/app/moses/tools/giza
139
+ BOOST=/app/moses/tools/boost_1_65_1
140
+ CMPH=/app/moses/tools/cmph-2.0
141
+ EIGEN=/app/moses/tools/eigen
142
+ XMLRPCJAVA=/app/moses/tools/xmlrpc-java
143
+ JAVA_HOME=/usr/lib/jvm/default-java
144
+ export LD_LIBRARY_PATH=/app/moses/tools/xmlrpc/lib:/usr/local/lib/
145
+
146
+
147
+ #LM
148
+ IRSTLM=/app/moses/lm/irstlm
149
+
150
+ #MT
151
+ MOSES=/app/moses/mosesdecoder
152
+
153
+ export CLASSPATH=.:$XMLRPCJAVA/xmlrpc-common-3.1.3.jar:$XMLRPCJAVA/xmlrpc-server-3.1.3.jar:$XMLRPCJAVA/ws-commons-util-1.0.2.jar:$XMLRPCJAVA/xmlrpc-client-3.1.3.jar
154
+
155
+ export PATH=$PATH:$MOSES:$IRSTLM/bin:/usr/lib/jvm/default-java/bin:
156
+
157
+ export JAVA_HOME=$JAVA_HOME
158
+ export MOSES=$MOSES
159
+ export IRSTLM=$IRSTLM
160
+
161
+
1_Hindi_to_Sindhi_MT.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import sys
3
+ import xmlrpc
4
+ from xmlrpc import client
5
+ import pandas as pd
6
+
7
+ # Title for the page and nice icon
8
+ st.set_page_config(page_title="Hindi-Sindhi MT Model", page_icon="🤖", layout='wide')
9
+ st.markdown("""
10
+ <style> .block-container {
11
+ padding-top: 1rem;
12
+ padding-bottom: 0rem;
13
+ padding-left: 5rem;
14
+ padding-right: 5rem;
15
+ }
16
+ </style>
17
+ """, unsafe_allow_html=True)
18
+ # Header
19
+ st.header("Machine Translation System - Hindi to Sindhi", divider='rainbow')
20
+ st.write("**-Developed at Speech and Language Processing Lab, Center for Artificial Intelligence, Banasthali Vidyapith. Sponsored by SERB, GoI, :flag-in:.**")
21
+
22
+ # ===========================================================================
23
+
24
+ def translate(source):
25
+ proxy = xmlrpc.client.ServerProxy("http://172.16.40.175:8083/RPC2")
26
+ print(source)
27
+ text_translate = proxy.translate({"text":source}) ["text"]
28
+ print(text_translate)
29
+ lst = text_translate.split("\n")
30
+ src = source.split("\n")
31
+ final_output = ''
32
+ for i in lst:
33
+ final_output += i + '\n'
34
+ return final_output
35
+
36
+ # ===========================================================================
37
+
38
+
39
+ c1, c2 = st.columns(2)
40
+ element = c2.empty()
41
+
42
+ user_input = c1.text_area("Source Text", max_chars=200000, height=500)
43
+ output = element.text_area("Target Text", max_chars=200000, height=500)
44
+
45
+ translation = translate(user_input)
46
+
47
+ submitted = st.button("Translate")
48
+
49
+ if submitted:
50
+ new_output = element.text_area('New Target Text', value=translation, height=500, max_chars=200000)
51
+
52
+
53
+
54
+ # +++++++++++++++++++++++ BOSS KA ORIGINAL CODE ++++++++++++++++++++++++++++++++
55
+
56
+ # def translate(source):
57
+ # proxy = xmlrpc.client.ServerProxy("http://172.16.40.175:8083/RPC2")
58
+ # print(source)
59
+ # text_translate = proxy.translate({"text":source}) ["text"]
60
+ # print(text_translate)
61
+ # lst = text_translate.split("\n")
62
+ # src = source.split("\n")
63
+ # df = pd.DataFrame()
64
+ # df["Source"] = src
65
+ # df["Translations"] = lst
66
+ # return df
67
+
68
+
69
+ # with st.form("my_form"):
70
+ # # Textarea to type the source text.
71
+ # user_input = st.text_area("Source Text", max_chars=200000)
72
+ # # Translate with CTranslate2 model
73
+ # translation = translate(user_input)
74
+
75
+ # # Create a button
76
+ # submitted = st.form_submit_button("Translate")
77
+ # # If the button pressed, print the translation
78
+ # # Here, we use "st.info", but you can try "st.write", "st.code", or "st.success".
79
+ # if submitted:
80
+ # st.write("Translation")
81
+ # st.dataframe(translation)
82
+
83
+ # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dockerfile ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10
2
+
3
+ WORKDIR /app/moses
4
+
5
+ RUN apt-get update && apt-get install -y default-jdk
6
+
7
+ ENV JAVA_HOME=/usr/lib/jvm/default-java
8
+ ENV PATH=$JAVA_HOME/bin:$PATH
9
+
10
+ COPY . /app/moses
11
+
12
+ COPY .bashrc /root/.bashrc
13
+
14
+ RUN pip install -r requirements.txt
15
+
16
+ EXPOSE 8083 8084
17
+
18
+ CMD ["bash", "-c", "cd /app/moses/HiSd && $MOSES/bin/mosesserver -f moses.ini --server-port 8083 & cd /app/moses/SdHi && $MOSES/bin/mosesserver -f moses.ini --server-port 8084 & wait"]
pages/2_Sindhi_to_Hindi_MT.py ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import sys
3
+ import xmlrpc
4
+ from xmlrpc import client
5
+ import pandas as pd
6
+
7
+ st.set_page_config(page_title="Sindi-Hindi MT Model", page_icon="🤖", layout='wide')
8
+ st.markdown("""
9
+ <style> .block-container {
10
+ padding-top: 1rem;
11
+ padding-bottom: 0rem;
12
+ padding-left: 5rem;
13
+ padding-right: 5rem;
14
+ }
15
+ </style>
16
+ """, unsafe_allow_html=True)
17
+ st.header("Machine Translation System - Sindhi to Hindi", divider='rainbow')
18
+ st.write("**-Developed at Speech and Language Processing Lab, Center for Artificial Intelligence, Banasthali Vidyapith. Sponsored by SERB, GoI, :flag-in:.**")
19
+
20
+ # ===========================================================================
21
+
22
+ def translate(source):
23
+ proxy = xmlrpc.client.ServerProxy("http://172.16.40.175:8084/RPC2")
24
+ print(source)
25
+ text_translate = proxy.translate({"text":source}) ["text"]
26
+ print(text_translate)
27
+ lst = text_translate.split("\n")
28
+ src = source.split("\n")
29
+ final_output = ''
30
+ for i in lst:
31
+ final_output += i + '\n'
32
+ return final_output
33
+
34
+
35
+ # ===========================================================================
36
+
37
+ c1, c2 = st.columns(2)
38
+ element = c2.empty()
39
+
40
+ user_input = c1.text_area("Source Text", max_chars=200000, height=500)
41
+ element.text_area("Target Text", max_chars=200000, height=500)
42
+
43
+ translation = translate(user_input)
44
+
45
+ submitted = st.button("Translate")
46
+
47
+ if submitted:
48
+ element.text_area("Target Text:", max_chars=200000, value=translation, height=500,)
49
+
50
+
51
+
52
+ # ++++++++++++++++++++++++ BOSS KA ORIGINAL CODE +++++++++++++++++++++++++++++
53
+ # def translate(source):
54
+ # proxy = xmlrpc.client.ServerProxy("http://172.16.40.175:8084/RPC2")
55
+ # print(source)
56
+ # text_translate = proxy.translate({"text":source}) ["text"]
57
+ # print(text_translate)
58
+ # lst = text_translate.split("\n")
59
+ # src = source.split("\n")
60
+ # df = pd.DataFrame()
61
+ # df["Source"] = src
62
+ # df["Translations"] = lst
63
+
64
+ # return df
65
+
66
+
67
+ # # Form to add your items
68
+ # with st.form("my_form"):
69
+ # # Textarea to type the source text.
70
+ # user_input = st.text_area("Source Text", max_chars=200000)
71
+ # # Translate with CTranslate2 model
72
+ # translation = translate(user_input)
73
+
74
+ # # Create a button
75
+ # submitted = st.form_submit_button("Translate")
76
+ # # If the button pressed, print the translation
77
+ # # Here, we use "st.info", but you can try "st.write", "st.code", or "st.success".
78
+ # if submitted:
79
+ # st.write("Translation")
80
+ # st.dataframe(translation)
81
+
82
+ # ++++++++++++++++++++++++ BOSS KA ORIGINAL CODE +++++++++++++++++++++++++++++