faizhalas commited on
Commit
12e8a14
β€’
1 Parent(s): f5cae63

Update Home.py

Browse files
Files changed (1) hide show
  1. Home.py +132 -50
Home.py CHANGED
@@ -4,42 +4,66 @@ from PIL import Image
4
 
5
  #===config===
6
  st.set_page_config(
7
- page_title="Coconut",
8
- page_icon="πŸ₯₯",
9
- layout="wide"
 
10
  )
11
- st.title('πŸ₯₯ Coconut Libtool')
12
  hide_streamlit_style = """
13
  <style>
14
- #MainMenu {visibility: hidden;}
 
15
  footer {visibility: hidden;}
 
16
  </style>
17
  """
18
  st.markdown(hide_streamlit_style, unsafe_allow_html=True)
19
 
20
- st.sidebar.success('Select page above')
21
 
22
  #===page===
23
- mt1, mt2, mt3 = st.tabs(["About", "How to", "Behind this app"])
24
-
25
- with mt1:
26
- st.header("Hello and welcome to the Coconut Libtool!")
27
- st.write("The coconut tree is known as one of the most useful trees. Each part of this important tree has an integral function from the leaves producing oxygen through photosynthesis to the shells, oil, wood, flowers, and husks being used in a variety of ways, such as building houses, cooking, and more.")
28
- st.write("Our philosophy aspires to emulate this highly cohesive and functionally unified environment where each part serves a specific function to the greater whole. 🌴 Just like the coconut tree, the Coconut Libtool is the all-in-one data mining and textual analysis tool for librarians or anyone interested in these applications. Our tool does not require any prior knowledge of coding or programming, making it approachable and great for users who want to test out these data analysis and visualization techniques.")
29
- st.write("We cannot thank everyone enough for who has assisted in the creation of this tool. Due to each individual’s efforts, science will advance, allowing for multiple analysis and visualization techniques to coexist within this one tool. πŸ§‘πŸ»β€πŸ€β€πŸ§‘πŸΎ")
30
- st.divider()
31
- st.text('We support Scopus, Web of Science, Lens, as well as personalized CSV files. Further information can be found in the "How to" section.')
32
- st.divider()
33
- st.write('To cite the Coconut Libtool, please use the following reference:')
34
- st.info("Santosa, Faizhal Arif, Lamba, Manika, & George, Crissandra J. (2023). Coconut Libtool. Zenodo. https://doi.org/10.5281/zenodo.8323458", icon="✍️")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  with mt2:
37
- st.header("Before you start")
38
- option = st.selectbox(
39
- 'Please choose....',
40
- ('Keyword Stem', 'Topic Modeling', 'Bidirected Network', 'Sunburst'))
41
 
42
- if option == 'Keyword Stem':
43
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Result"])
44
  with tab1:
45
  st.write("This approach is effective for locating basic words and aids in catching the true meaning of the word, which can lead to improved semantic analysis and comprehension of the text. Some people find it difficult to check keywords before performing bibliometrics (using software such as VOSviewer and Bibliometrix). This strategy makes it easy to combine and search for fundamental words from keywords, especially if you have a large number of keywords. To do stemming or lemmatization on other text, change the column name to 'Keyword' in your file.")
@@ -75,16 +99,16 @@ with mt2:
75
  """)
76
 
77
  with tab4:
78
- st.subheader(':blue[Result]')
79
  st.button('Press to download result πŸ‘ˆ')
80
  st.text("Go to Result and click Download button.")
81
 
82
  st.divider()
83
- st.subheader(':blue[List of Keywords]')
84
  st.button('Press to download keywords πŸ‘ˆ')
85
  st.text("Go to List of Keywords and click Download button.")
86
 
87
- elif option == 'Topic Modeling':
88
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
89
  with tab1:
90
  st.write("Topic modeling has numerous advantages for librarians in different aspects of their work. A crucial benefit is an ability to quickly organize and categorize a huge volume of textual content found in websites, institutional archives, databases, emails, and reference desk questions. Librarians can use topic modeling approaches to automatically identify the primary themes or topics within these documents, making navigating and retrieving relevant information easier. Librarians can identify and understand the prevailing topics of discussion by analyzing text data with topic modeling tools, allowing them to assess user feedback, tailor their services to meet specific needs and make informed decisions about collection development and resource allocation. Making ontologies, automatic subject classification, recommendation services, bibliometrics, altmetrics, and better resource searching and retrieval are a few examples of topic modeling. To do topic modeling on other text like chats and surveys, change the column name to 'Abstract' in your file.")
@@ -117,27 +141,27 @@ with mt2:
117
  """)
118
 
119
  with tab4:
120
- st.subheader(':blue[pyLDA]')
121
  st.button('Download image')
122
  st.text("Click Download Image button.")
123
 
124
  st.divider()
125
- st.subheader(':blue[Biterm]')
126
  st.text("Click the three dots at the top right then select the desired format.")
127
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_biterm.jpg)")
128
 
129
  st.divider()
130
- st.subheader(':blue[BERTopic]')
131
  st.text("Click the camera icon on the top right menu")
132
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bertopic.jpg)")
133
 
134
- elif option == 'Bidirected Network':
135
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Graph"])
136
  with tab1:
137
  st.write("The use of network text analysis by librarians can be quite beneficial. Finding hidden correlations and connections in textual material is a significant advantage. Using network text analysis tools, librarians can improve knowledge discovery, obtain deeper insights, and support scholars meaningfully, ultimately enhancing the library's services and resources. This menu provides a two-way relationship instead of the general network of relationships to enhance the co-word analysis. Since it is based on ARM, you may obtain transactional data information using this menu. Please name the column in your file 'Keyword' instead.")
138
  st.divider()
139
  st.write('πŸ’‘ The idea came from this:')
140
- st.write('Santosa, F. (2023). Adding Perspective to the Bibliometric Mapping Using Bidirected Graph. Open Information Science, 7(1), 20220152. https://doi.org/10.1515/opis-2022-0152')
141
 
142
  with tab2:
143
  st.text("1. Put your file.")
@@ -170,12 +194,12 @@ with mt2:
170
  """)
171
 
172
  with tab4:
173
- st.subheader(':blue[Bidirected Network]')
174
  st.text("Zoom in, zoom out, or shift the nodes as desired, then right-click and select Save image as ...")
175
  st.markdown("![Downloading graph](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bidirected.jpg)")
176
 
177
 
178
- elif option == 'Sunburst':
179
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
180
  with tab1:
181
  st.write("Sunburst's ability to present a thorough and intuitive picture of complex hierarchical data is an essential benefit. Librarians can easily browse and grasp the relationships between different levels of the hierarchy by employing sunburst visualizations. Sunburst visualizations can also be interactive, letting librarians and users drill down into certain categories or subcategories for further information. This interactive and visually appealing depiction improves the librarian's understanding of the collection and provides users with an engaging and user-friendly experience, resulting in improved information retrieval and decision-making.")
@@ -206,22 +230,80 @@ with mt2:
206
  """)
207
 
208
  with tab4:
209
- st.subheader(':blue[Sunburst]')
210
  st.text("Click the camera icon on the top right menu")
211
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bertopic.jpg)")
212
-
213
-
214
- with mt3:
215
- st.header('Behind this app')
216
- st.subheader('Faizhal Arif Santosa')
217
- st.text('Librarian. National Research and Innovation Agency.')
218
- st.text('')
219
- st.subheader('Dr. Manika Lamba')
220
- st.text('Postdoctoral Research Associate. University of Illinois Urbana-Champaign.')
221
- st.text('')
222
- st.subheader('Crissandra George')
223
- st.text('Digital Collections Manager Librarian. Case Western Reserve University.')
224
- st.text('')
225
- st.text('')
226
- st.divider()
227
- st.text('If you want to take a part, please let us know!')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  #===config===
6
  st.set_page_config(
7
+ page_title="Coconut",
8
+ page_icon="πŸ₯₯",
9
+ layout="wide",
10
+ initial_sidebar_state="collapsed"
11
  )
12
+
13
  hide_streamlit_style = """
14
  <style>
15
+ #MainMenu
16
+ {visibility: hidden;}
17
  footer {visibility: hidden;}
18
+ [data-testid="collapsedControl"] {display: none}
19
  </style>
20
  """
21
  st.markdown(hide_streamlit_style, unsafe_allow_html=True)
22
 
23
+ st.title('πŸ₯₯ Coconut Libtool', anchor=False)
24
 
25
  #===page===
26
+ mt1, mt2 = st.tabs(["Menu", "How to"])
27
+
28
+ with mt1:
29
+ col1, col2, col3 = st.columns(3)
30
+ with col1.container(border=True):
31
+ st.markdown("![Stemming](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/lemma.png)")
32
+ if st.button("Go to Keywords Stem"):
33
+ st.switch_page("pages/6 Keywords Stem.py")
34
+
35
+ with col2.container(border=True):
36
+ st.markdown("![Topic modeling](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/topicmodeling.png)")
37
+ if st.button("Go to Topic Modeling"):
38
+ st.switch_page("pages/2 Topic Modeling.py")
39
+
40
+ with col3.container(border=True):
41
+ st.markdown("![Bidirected network](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/bidirected.png)")
42
+ if st.button("Go to Bidirected Network"):
43
+ st.switch_page("pages/3 Bidirected Network.py")
44
+
45
+ with col1.container(border=True):
46
+ st.markdown("![Sunburst](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/sunburst.png)")
47
+ if st.button("Go to Sunburst Visualization"):
48
+ st.switch_page("pages/4 Sunburst.py")
49
+
50
+ with col2.container(border=True):
51
+ st.markdown("![Burst](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/burst.png)")
52
+ if st.button("Go to Burst Detection"):
53
+ st.switch_page("pages/5 Burst Detection.py")
54
+
55
+ with col3.container(border=True):
56
+ st.markdown("![Scattertext](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/scattertext.png)")
57
+ if st.button("Go to Scattertext"):
58
+ st.switch_page("pages/1 Scattertext.py")
59
 
60
  with mt2:
61
+ st.header("Before you start", anchor=False)
62
+ option = st.selectbox(
63
+ 'Please choose....',
64
+ ('Keyword Stem', 'Topic Modeling', 'Bidirected Network', 'Sunburst', 'Burst Detection', 'Scattertext'))
65
 
66
+ if option == 'Keyword Stem':
67
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Result"])
68
  with tab1:
69
  st.write("This approach is effective for locating basic words and aids in catching the true meaning of the word, which can lead to improved semantic analysis and comprehension of the text. Some people find it difficult to check keywords before performing bibliometrics (using software such as VOSviewer and Bibliometrix). This strategy makes it easy to combine and search for fundamental words from keywords, especially if you have a large number of keywords. To do stemming or lemmatization on other text, change the column name to 'Keyword' in your file.")
 
99
  """)
100
 
101
  with tab4:
102
+ st.subheader(':blue[Result]', anchor=False)
103
  st.button('Press to download result πŸ‘ˆ')
104
  st.text("Go to Result and click Download button.")
105
 
106
  st.divider()
107
+ st.subheader(':blue[List of Keywords]', anchor=False)
108
  st.button('Press to download keywords πŸ‘ˆ')
109
  st.text("Go to List of Keywords and click Download button.")
110
 
111
+ elif option == 'Topic Modeling':
112
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
113
  with tab1:
114
  st.write("Topic modeling has numerous advantages for librarians in different aspects of their work. A crucial benefit is an ability to quickly organize and categorize a huge volume of textual content found in websites, institutional archives, databases, emails, and reference desk questions. Librarians can use topic modeling approaches to automatically identify the primary themes or topics within these documents, making navigating and retrieving relevant information easier. Librarians can identify and understand the prevailing topics of discussion by analyzing text data with topic modeling tools, allowing them to assess user feedback, tailor their services to meet specific needs and make informed decisions about collection development and resource allocation. Making ontologies, automatic subject classification, recommendation services, bibliometrics, altmetrics, and better resource searching and retrieval are a few examples of topic modeling. To do topic modeling on other text like chats and surveys, change the column name to 'Abstract' in your file.")
 
141
  """)
142
 
143
  with tab4:
144
+ st.subheader(':blue[pyLDA]', anchor=False)
145
  st.button('Download image')
146
  st.text("Click Download Image button.")
147
 
148
  st.divider()
149
+ st.subheader(':blue[Biterm]', anchor=False)
150
  st.text("Click the three dots at the top right then select the desired format.")
151
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_biterm.jpg)")
152
 
153
  st.divider()
154
+ st.subheader(':blue[BERTopic]', anchor=False)
155
  st.text("Click the camera icon on the top right menu")
156
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bertopic.jpg)")
157
 
158
+ elif option == 'Bidirected Network':
159
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Graph"])
160
  with tab1:
161
  st.write("The use of network text analysis by librarians can be quite beneficial. Finding hidden correlations and connections in textual material is a significant advantage. Using network text analysis tools, librarians can improve knowledge discovery, obtain deeper insights, and support scholars meaningfully, ultimately enhancing the library's services and resources. This menu provides a two-way relationship instead of the general network of relationships to enhance the co-word analysis. Since it is based on ARM, you may obtain transactional data information using this menu. Please name the column in your file 'Keyword' instead.")
162
  st.divider()
163
  st.write('πŸ’‘ The idea came from this:')
164
+ st.write('Santosa, F. A. (2023). Adding Perspective to the Bibliometric Mapping Using Bidirected Graph. Open Information Science, 7(1), 20220152. https://doi.org/10.1515/opis-2022-0152')
165
 
166
  with tab2:
167
  st.text("1. Put your file.")
 
194
  """)
195
 
196
  with tab4:
197
+ st.subheader(':blue[Bidirected Network]', anchor=False)
198
  st.text("Zoom in, zoom out, or shift the nodes as desired, then right-click and select Save image as ...")
199
  st.markdown("![Downloading graph](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bidirected.jpg)")
200
 
201
 
202
+ elif option == 'Sunburst':
203
  tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
204
  with tab1:
205
  st.write("Sunburst's ability to present a thorough and intuitive picture of complex hierarchical data is an essential benefit. Librarians can easily browse and grasp the relationships between different levels of the hierarchy by employing sunburst visualizations. Sunburst visualizations can also be interactive, letting librarians and users drill down into certain categories or subcategories for further information. This interactive and visually appealing depiction improves the librarian's understanding of the collection and provides users with an engaging and user-friendly experience, resulting in improved information retrieval and decision-making.")
 
230
  """)
231
 
232
  with tab4:
233
+ st.subheader(':blue[Sunburst]', anchor=False)
234
  st.text("Click the camera icon on the top right menu")
235
  st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bertopic.jpg)")
236
+
237
+ elif option == 'Burst Detection':
238
+ tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
239
+ with tab1:
240
+ st.write("Burst detection identifies periods when a specific event occurs with unusually high frequency, referred to as 'bursty'. This method can be applied to identify bursts in a continuous stream of events or in discrete groups of events (such as poster title submissions to an annual conference).")
241
+ st.divider()
242
+ st.write('πŸ’‘ The idea came from this:')
243
+ st.write('Kleinberg, J. (2002). Bursty and hierarchical structure in streams. Knowledge Discovery and Data Mining. https://doi.org/10.1145/775047.775061')
244
+
245
+ with tab2:
246
+ st.text("1. Put your file. Choose your preferred column to analyze.")
247
+ st.text("2. Choose your preferred method to count the words and decide how many top words you want to include or remove.")
248
+ st.text("3. To adjust the visualization, you can change the number of columns.")
249
+ st.text("4. Finally, you can visualize your data.")
250
+ st.error("This app includes lemmatization and stopwords. Currently, we only offer English words.", icon="πŸ’¬")
251
+
252
+ with tab3:
253
+ st.text("""
254
+ +----------------+------------------------+----------------------------------+
255
+ | Source | File Type | Column |
256
+ +----------------+------------------------+----------------------------------+
257
+ | Scopus | Comma-separated values | Choose your preferred column |
258
+ | | (.csv) | that you have to analyze and |
259
+ +----------------+------------------------| and need a column called "Year" |
260
+ | Web of Science | Tab delimited file | |
261
+ | | (.txt) | |
262
+ +----------------+------------------------| |
263
+ | Lens.org | Comma-separated values | |
264
+ | | (.csv) | |
265
+ +----------------+------------------------| |
266
+ | Other | .csv | |
267
+ +----------------+------------------------+----------------------------------+
268
+ """)
269
+
270
+ with tab4:
271
+ st.subheader(':blue[Burst Detection]', anchor=False)
272
+ st.text("Click the camera icon on the top right menu")
273
+ st.markdown("![Downloading visualization](https://raw.githubusercontent.com/faizhalas/library-tools/main/images/download_bertopic.jpg)")
274
+
275
+ elif option == 'Scattertext':
276
+ tab1, tab2, tab3, tab4 = st.tabs(["Prologue", "Steps", "Requirements", "Download Visualization"])
277
+ with tab1:
278
+ st.write("Scattertext is an open-source tool designed to visualize linguistic variations between document categories in a language-independent way. It presents a scatterplot, with each axis representing the rank-frequency of a term's occurrence within a category of documents.")
279
+ st.divider()
280
+ st.write('πŸ’‘ The idea came from this:')
281
+ st.write('Kessler, J. S. (2017). Scattertext: a Browser-Based Tool for Visualizing how Corpora Differ. https://doi.org/10.48550/arXiv.1703.00565')
282
+
283
+ with tab2:
284
+ st.text("1. Put your file. Choose your preferred column to analyze.")
285
+ st.text("2. Choose your preferred method to compare and decide words you want to remove.")
286
+ st.text("3. Finally, you can visualize your data.")
287
+ st.error("This app includes lemmatization and stopwords. Currently, we only offer English words.", icon="πŸ’¬")
288
+
289
+ with tab3:
290
+ st.text("""
291
+ +----------------+------------------------+----------------------------------+
292
+ | Source | File Type | Column |
293
+ +----------------+------------------------+----------------------------------+
294
+ | Scopus | Comma-separated values | Choose your preferred column |
295
+ | | (.csv) | that you have |
296
+ +----------------+------------------------| |
297
+ | Web of Science | Tab delimited file | |
298
+ | | (.txt) | |
299
+ +----------------+------------------------| |
300
+ | Lens.org | Comma-separated values | |
301
+ | | (.csv) | |
302
+ +----------------+------------------------| |
303
+ | Other | .csv | |
304
+ +----------------+------------------------+----------------------------------+
305
+ """)
306
+
307
+ with tab4:
308
+ st.subheader(':blue[Scattertext]', anchor=False)
309
+ st.write("Click the :blue[Download SVG] on the right side.")