WikiArt.org allows unlimited copying, distributing and displaying of the images of public domain artworks solely. I would like to find out more information about this 2010 Chrysler Town & Country TOURING ONE OWNER.
Safety: Auto-on Headlights, Daytime Running Lights, Driver Airbag, Passenger Airbag, Psngr. South Central Auto Sales has made every effort to ensure accuracy in the information provided. The Mazda 3 had slightly higher ownership costs, but it's definitely a car to recon with. Images of that type of artworks are prohibited for copying, printing, or any kind of reproducing and communicating to public since these activities may be considered copyright infringement.
The hamlet, on the other hand, is invented, and the church spire evokes van Gogh's native land, the Netherlands. Specifications, equipment, technical data, photographs and illustrations are based on information available at time of posting and are subject to change without notice.
Connecting earth and sky is the flamelike cypress, a tree traditionally associated with graveyards and mourning. The painting, like its daytime companion, The Olive Trees, is rooted in imagination and memory.
Alternatively, we've also got a list of Top 5 NEW Cars for College Students in a sister-post as well. Leaving behind the Impressionist doctrine of truth to nature in favor of restless feeling and intense color, as in this highly charged picture, van Gogh made his work a touchstone for all subsequent Expressionist painting.
It is a rough guide and provided only for illustrative purposes and do not represent credit worthiness.
Ranking Factors for Our Top 5 Used Cars for College Students We looked at several important features of over 20 different sedans to pick out the top 5.
21.12.2015 at 15:20:45 Executive Agency of the Department for Transport (DfT) once you get a hold of the car the.
21.12.2015 at 21:34:16 Capable of increased speeds and efficiency levels, or autos that retail unbiased skilled to have.
21.12.2015 at 14:26:44 Some automakers had already been doing this well not be one thing that is simply repaired.


text:
Fifth-Year Master's Program
The Campus & the Pioneer Valley
Cell & Developmental Biology
Evolution & Ecology
Plant Environment Interactions
Ph.D. Requirements
M.S. Requirements
Plant Biology Symposium
Students are strongly encouraged to contact those faculty they are interested in working with prior to submitting an application.
Applications must be submitted to the University of Massachusetts Graduate School along with the application fee. The on-line application is through the SPIRE system.
Deadline for Submission of Applications
Applications are due at the Graduate School by December 15th for admissions the following September (Fall Semester).
Application deadline for Fall 2021 is December 1st.
Applications received after the deadline will be considered as space allows.
Applicants must submit the standard University of Massachusetts Application form for Graduate School, available online.
Applicants should apply for either the MS or the PhD program. The Plant Biology Graduate Program does not have a MS/PhD track. Official transcripts, and two letters of reference must be provided. Submission of Graduate Record Examination (GRE) scores is not required. Students whose native language is not English must submit TOEFL scores. The institution code for TOEFL scores is 3917 - no department code is necessary. The "Personal Statement" as requested on the University of Massachusetts application form should include a brief narrative that addresses work experience, research experience, and scholarship.
Applicants should include reprints of papers published in refereed science journals and/or abstracts from papers presented at meetings (only if they are written in English). Do not including any extraneous information such as photocopies of diplomas, certificates of award, etc.
Online Applications/Obtaining Applications
Applications for Graduate School and the University of Massachusetts can be obtained online (http://www.umass.edu/gradschool) or by writing or calling -
Graduate Admissions Office,
534 Goodell Building
University of Massachusetts,
Amherst, Massachusetts 01003-3291
Graduate Admissions Frequently Asked Questions
Or email Graduate Admissions at: gradadm@grad.umass.edu
Visits/Interviews
Potential applicants are encouraged to read through the PB website to learn more about the faculty, curriculum, and facilities. Applicants are welcome to visit our campus to tour facilities and discuss research interests with faculty after submitting an application. In particular, applicants to the MS program should have a clear idea of which faculty member they wish to work with. It is advisable for MS applicants to contact potential faculty advisors directly before applying. You should contact the program office to arrange any subsequent visits. The admissions committee may request a formal interview with MS and PhD applicants, generally during a recruiting weekend in the spring.
17th Annual Symposium
in Plant Biology
Register online to attend:
Event details >>
Minsoo Kim
Consequences of a disorganized mitochondrial genome
James Liu
RALF1-LLG1-FERONIA signaling module underlies its global functional roles in Arabidopsis
Thursday, Feb 6
Elsbeth Walker
Long distance signaling of iron status in plants
View all seminars »
This site is maintained by Plant Biology, an interdisciplinary Graduate Program in the Life Sciences in the College of Natural Sciences.
Plant Biology Graduate Program: 202 French Hall • (413) 577-3217 • e-mail: pb@bio.umass.edu • PB Directory
Mailing Address: 204C French Hall • University of Massachusetts Amherst • 230 Stockbridge Road • Amherst, MA 01003-9316

redpajama_set_name: RedPajamaCommonCrawl


text:
[Pangyo Tech] KakaoMobility Attracts Investments of 100 Billion Won From LG… "Discovering New Business Opportunities"
Jul 10, 2021 | Business
From an ESG management perspective, LG Corp seeks new business opportunities such as securing battery driving data for LG affiliates, exchanging batteries, and charging solutions for electric vehicles through cooperation with Kakao Mobility
LOS ANGELES, CA, July 10, 2021 /24-7PressRelease/ — LG Corp. announced on July 2 that it had decided to invest 100 billion won in Kakao Mobility.
Kakao Mobility is a mobility platform service company that provides various mobility services based on Kakao T. It is accelerating the introduction of eco-friendly electric vehicles and expanding the platform area to "movement of services and things" based on big data and analysis know-how.
From an ESG management perspective, LG Corp made the investment to seek new business opportunities such as securing battery driving data for LG affiliates, exchanging batteries, and charging solutions for electric vehicles through cooperation with Kakao Mobility, and gain potential synergy effect.
LG Energy Solution is strengthening its "BaaS (Battery as a Service)" business competency, a management and diagnosis service for each life cycle from manufacturing to utilization and reuse of EV batteries. It has introduced a pilot service for charging station integrated management solution with electric vehicle charging monitoring, remote control, and diagnosis.
LG and Kakao Mobility will regularly discuss ways to cooperate so that they can develop into a strategic partnership. In the future, the company plans to jointly develop new business opportunities by combining LG's battery and electric field-related capabilities with Kakao Mobility's platform capabilities.
An LG official said, "Through this investment, we will increase our understanding of customer contact in the mobility platform business, and create synergy with Kakao Mobility."
A Kakao Mobility official said, "We will combine the capabilities of both companies to promote the growth of the domestic electric vehicle ecosystem, and to lead technological innovation in the future mobility field."
KakaoMobility is based in Pangyo. Pangyo Technovalley is an innovation hub for global companies comparable to the Silicon Valley in the US, Zhongguancun in China, and STATION F in France. It is an Asia tech hub with 1,259 IT, BT, CT, and NT companies that possess innovative products and technologies. Located just south of the metropolitan area, it provides the best environment for Korean companies to do business with great transportation access and infrastructure.
Various high-tech companies are located in Pangyo Technovalley, and it is occupied by 64,000 full-time employees, many in their 20-30s. In terms of industry, the companies are engaged in information technology, contents technology, biotechnology, and nanotechnology.
With the support of innovative companies with global capabilities such as Kakao, Naver, AhnLab, Krafton, NCSoft, Nexon, and Hancom, companies in Pangyo Technovalley recorded 107 trillion won in sales last year. Investment and infrastructure growth in Pangyo is expected to continue, with the Metaverse hub entering Pangyo this year.
PreviousNew Orleans Disability Attorneys Site Provides Helpful Resource
Next'Buy Now, Pay Later' The Go-To Payment Method for Aussies
The Advocate Urges a Navy Veteran with Mesothelioma to Get Serious About Compensation and to Call Attorney Erik Karst of Karst von Oiste For Specifics About Their Financial Compensation Claim
Signarama® Announces New Facility in Garner, Grand Opening Celebration on October 21
Osuji & Smith Employment Lawyers Advise Calgary Employees Facing Layoffs
Dr. Pravin U. Dugel Elected to the Orbis International Board of Directors


Recent technological developments on mobile technologies associated with the growing computational capabilities of sensing enabled devices have given rise to mobile sensing systems that can target community level problems. These systems are capable of inferring intelligence from acquired raw sensed data, through the use of data mining and machine learning techniques. However, due to their recent advent, associated issues remain to be solved in a systematized way. Various areas can benefit from these initiatives, with public health systems having a major application gain. There has been interest in the use of social networks as a mean of epidemic prediction. Still, the integration between large-scale sensor networks and these initiatives, required to achieve seamless epidemic detection and prediction, is yet to be achieved. In this context, it is essential to review systems applied to epidemic prediction. This paper presents an application scenario for such predictions, namely fetus health monitoring in pregnant woman, presenting a new non-invasive portable alternative system that allows long-term pregnancy surveillance.
Distributed systems have been used as a platform to allow the interaction between groups of individuals and a set of devices. As technology advances in sensing, computation, storage and communications become widespread, ubiquitous sensing devices will become a part of global distributed sensing systems (Campbell et al., 2008; Lane et al., 2010).
Recently, the predominance of mobile phones equipped with sensors, the explosion in social networks and the deployment of sensor networks have created an enormous digital footprint that can be harnessed (Zhang, Guo, Li, & Yu, 2010). Furthermore, developments in sensor technology, communications and semantic processing, allow the coordination of a large network of devices and large dataset processing with intelligent data analysis (Lane et al., 2010).
The sensing of people constitutes a new application domain that broadens the traditional sensor network scope of environmental and infrastructure monitoring. People become the carriers of sensing devices and both producers and consumers of events (Miluzzo et al., 2008). As a consequence, the recent interest by the industry in open programming platforms and software distribution channels is accelerating the development of people-centric sensing applications and systems (Lane et al., 2010; Miluzzo et al., 2008).
To take advantage of these emerging networks of mobile people-centric sensing devices, researchers arrived at the concept of Mobiscopes, i.e. taskable mobile sensing systems that are capable of high coverage. They represent a new type of infrastructure, where mobile sensors have the potential to logically belong to more than one network, while being physically attached to their carriers (Abdelzaher et al., 2007). By taking advantage of these systems, it will be possible to mine and run computations on enormous amounts of data from a very large number of users (Lane et al., 2010). People-centric sensing therefore enables a different approach to sensing, learning, visualizing and data sharing, not only self-centered, but especially focused on the surrounding world. The traditional view on mesh sensor networks is combined with one where people (carrying sensors) turn opportunistic coverage into a reality (Campbell et al., 2008). These sensors can reach into regions whereas static sensors cannot, proving to be especially useful for applications that occasionally require sensing (Abdelzaher et al., 2007). By employing these systems, one can aim to revolutionize the field of context-aware computing (Zhang et al., 2010).
By leveraging the behavioral patterns related to individuals, groups and society, a new multidisciplinary field is created: Social and Community Intelligence (SCI) (Zhang et al., 2010). Real-time user contributed data is invaluable to address community-level problems and provide universal access to information, contributing to the emergence of innovative services (Campbell et al., 2008; Lane et al., 2010; Zhang et al., 2010), such as the prediction and tracking of epidemic outbreaks across populations (Zhang et al., 2010). Thus, technological benefits are shifted from a restricted group of scientists to the whole society (Campbell et al., 2008).
Such systems can be applied to Healthcare, to facilitate both monitoring and sharing of automatically gathered health data (Campbell et al., 2008). Epidemics are a major public health concern and it has been shown impact can be reduced by early detection of the disease activity. For instance, it has been shown that the level of influenza-like illness in regions of the US can be estimated with a reporting lag of one day, when compared to clinical methods whose results take a week to be published (Zhang et al., 2010).
As most people possess sensing-enabled phones, the main obstacle in this area is not the lack of an infrastructure. Rather, the technical barriers are related to performing privacy and resource respecting inference, while supplying users and communities with useful feedback (Lane et al., 2010).


Please note that all of the content on the Premier Gaming UK website is for information purposes only, and due to the nature of this website you need to be over the age of 18 to visit our website.
Be aware that all of the promotional offers, special deals and bonus offers that we have listed on this website are subject to change at any time, and as such if you do come across an offer or any bonus that you are interested in claiming and making use of then you should double check with the casino, poker or bingo sites website that is offering that bonus or promotional offers to make sure it is still available.
Be aware that gambling in any form does have an element of risk attached to it and as such you should only ever gamble with money you are prepared to lose.
All of the gaming and gambling sites that we showcase to our website visitors are licensed in the UK by the UK Gambling Commission or have been granted a secondary gaming license by the UK Gambling Commission and as such every site we present to you is a legal and fully regulated UK casino site.


text:
package com.mircea.sotan.model;

import com.google.gson.annotations.SerializedName;

/**
 * @author mirceasotan
 */
public class NewReleases extends GsonObject {
    @SerializedName("albums")
    private BasePaging<SimpleAlbum> simpleAlbums;

    public BasePaging<SimpleAlbum> getSimpleAlbums() {
        return simpleAlbums;
    }
}

redpajama_set_name: RedPajamaGithub


text:
\section{Introduction}
How to detect HTML boilerplate accurately and efficiently is a continuing quest for search engines and other applications. Methods that worked well on earlier webpages may not work well on contemporary webpages due to new structure and presentation style.

Structures of contemporary webpages have two types: The type-1 structure keeps the main content in one place, surrounded by boilerplate contents, while the type-2 structures scatters the main text across the entire webpage.
News articles and blogs are type-1, and community-based Q\&A webpages are type-2, which display lists of questions followed by one or more answers to each question (see Fig. \ref{fig:1}).

\begin{figure}[h]
\centering
\includegraphics[width=0.50\textwidth, height=3in]
{COMP.jpg}
\begin{tabular}{cc}
\end{tabular}
\caption{Sample type-1 (left) and type-2 (right) structures, where highlighted texts enclosed in the added red boxes are the corresponding main content}
\label{fig:1}
\end{figure}

Constructing a spiderbot (a.k.a. spider or crawler) for a given webpage is the most
accurate method to extract the main text. However, it involves tedious manual inspection of the layout of the page, and its accuracy
is sensitive to even the slightest change of the underlying structure of the webpage. To avoid laborious construction and maintenance of spiders, researchers have pursued a different approach known as boilerplate detection
based on common features, which are less sensitive to structural change of webpages.

Boilerplate-detection methods have mainly targeted at type-1 pages;
extracting main contents from type-2 webpages has not attracted much attention.
However, there is a need to extract question-answer pairs from community Q\&A websites for
constructing a domain-specific chatbot (e.g., \cite{Yang-Wang2017}). Recent success of neural-network research has made it possible to construct a boilerplate detection model to handle webpages of both types. We present such a model called SemText that requires no handcrafted features, and demonstrate that it is a promising approach.

SemText is a hierarchical neural-network model based on a semantic representation of text. To obtain this representation we partition the text contained in an HTML file into a sequence of text blocks, and represent each text block uniquely with three sequences: (1) a sequence of HTML tags on the path from the root of the DOM-tree of the page to the text block, (2) a sequence of class names on the path from the root to the text block, and (3) a text string (content) enclosed in the text block. HTML tags have semantic meanings, so do class names if web developers follow the conventional naming rules. We take advantage of these meanings by replacing each HTML tag with the underlying word and each class name with an appropriate sequence of words. We view a word string as a sentence with certain meanings, and so semantic representations of words such as word-embedding vectors may be used.
Next, we feed the resulting strings to a depthwise CNN model to produce a feature map of a text block.
We then apply a Bi-LSTM-CRF sequence-labeling model to classify feature maps using the semantics registered inside and between them.

We train SemText in an end-to-end fashion on a dataset that combines three published type-1 webpages collected from 2008 to 2020, then fine-tune it using a small number of cross-domain webpages for development provided by CleanEval \cite{baroni2008cleaneval} and GoogleTrends-2017 \cite{leonhardt2020boilerplate}. We show that
SemText achieves the highest F1 score over previous methods on these datasets. We then evaluate SemText on a collection of type-2 webpages and show that SemText also works well.
\begin{comment}
Our major contributions are summarized below:
\begin{enumerate}
\item We present a search-and-combine segmentation algorithm to partition the text portion of a webpage into text blocks, and represent each block by a 3-tuple of semantic word strings embedded in the underlying HTML file.

\item We present SemText, a hierarchical neural-network model using a semantic representation of word strings, and show that it performs well on extracting main texts from webpages of both types. In particular, it outperforms state-of-the-art model over the benchmark dataset of CleanEval and GoogleTrends-2017. We show that, though numerical analysis, SemText is structural-independent and performs well on a out-of-domain community-based Q\&A webpage.

\end{enumerate}
\end{comment}

\section{Related Work}\label{sec:2}
Previous boilerplate-detection methods can be divided into rule-based, website-based, and machine learning algorithms.

\subsubsection{Rule-based and heuristic methods} They
are based on shallow features such as text length or text-over-tag density.
For example, the main content could be located at a ``plateau" area where
the amount of text increases dramatically while
the number of tags only changes a little \cite{finn2001fact}. The main content could also be in an area with the highest text density defined by the number of tokens over the number of tags or lines \cite{kohlschutter2008densitometric,weninger2010cetr,sun2011dom,wang2015qread}. These methods, while achieving high accuracy on certain webpages such as news articles, do not work well on contemporary webpages with running ads separating the main text into multiple segments. Contemporary webpages would present multiple ``plateaus" or multiple clusters of the same highest density.

\subsubsection{Website-based methods} They are based on the observation that webpages on the same website would follow the same style. For example, merging the DOM-trees of single webpages on the same website in a top-down fashion, the main content could be a sequence of nodes with more presentation styles and more diverse content types \cite{yi2003eliminating}. A boilerplate may also be viewed as a common subtree of DOM-trees of the webpages at the same website, and so boilerplate detection is reduced to finding a common subtree from a set of given trees \cite{vieira2006fast}.
These methods can detect website templates with high accuracy, applicable to both type-1 and type-2 webpages. In reality, however, most applications only have a single webpage as a data source without
the needed website information.

\subsubsection{Machine-learning methods} They can be categorized
into regression, classification, and sequence labeling.

Regression methods rank or score text blocks. For example, using a vision-based page segmentation method \cite{cai2003vips} to visually separate a webpage into several blocks by the center pixel coordinate, width, height, and other visual information, a radial-basis-function network can perform regression to score text blocks \cite{song2004learning}. However, most published datasets do not provide ranking or scoring of extractions to support regression, which hinders this approach.

Classification methods represent and classify each text block independently
based on handcrafted features. For example, a total of 67 handcrafted textual features are used
for block classification \cite{kohlschutter2010boilerplate}. Similarily, FIASCO\cite{bauer2007fiasco} represents a text block using linguistic, structural, and visual features, and uses SVM for classification. However, classifying text blocks without considering context or the interrelations between them is error-prone, especially those with limited content. For example, to classify a text block that says ``limited time 20 percent off" without context is difficult, for it could be a boilerplate or the main text depending on the context.

Sequence-labeling methods, such as Conditional Random Field (CRF) \cite{spousta2008victor,neunerdt2015enhanced}, use relations between neighboring text blocks to jointly decode the best chain of labels for text blocks.
To enrich conventional features, a CNN model may be added to sequence labeling. For example, Web2text \cite{vogels2018web2text} applies CNN to learn unary and pairwise classification potentials for the sequence of text blocks, maximizing the joint probability using the Viterbi algorithm. But the CNN model is used to refine 128 hand-crafted features instead of learning feature representations.

Machine-learning methods rely on handcrafted features, ranging from textual to structural and from linguistic to visual; handcrafted features are sensitive to structure change.
Moreover, most handcrafted features were designed specifically for type-1 webpages with simpler layouts.
To avoid handcrafted features, deep learning models have recently been used to detect boilerplate. BoilerNet \cite{leonhardt2020boilerplate}, for example, is a neural sequence-labeling model that represents each text block as a vector, encoding both HTML tags and words in the text block. Each index in the vector indicates the token count for a specific tag or word. A bi-directional LSTM model is adopted for sequence labeling. BoilerNet outperforms or matches previous models.

How to represent a text block is critical. Counting tokens may work for HTML tags, for the number of tags is limited. But it may not work well for words. In particular, if a token in the testing webpages has never been seen in the training set, the vector fails to represent the text block properly.
Although it is possible to represent text with limited tokens by carefully selecting them, it is akin to using handcrafted features. Furthermore, a counting-based representation discards the most important semantic information registered inside the text. Such information is often used by humans when distinguishing the main content from boilerplate.

\section{SemText}\label{sec:4}\label{sec:4.1}

We model boilerplate detection as a text-sequence labeling problem, where a webpage $X$ is divided into a sequence of text blocks $X =[x_1, x_2,\ldots, x_m]$ and each text block is encoded using semantic representations of three word strings: (1) a sequence of
HTML tags, (2) a sequence of class names, and (3) a sequence of text in the text block. We seek to produce a globally-optimal label sequence $Y = [y_1, y_2, \ldots, y_m]$ for $X$, where $y_t$ denotes the classification label (``main" or ``boilerplate") assigned to block $x_t$ at time $t$ on input $x_t$.

\subsection{Generation of text block sequence}

We present an algorithm called Search-and-Combine Segmentation (SCS) to generate a sequence of text blocks
 in two phases: the search phase
and the combine phase. In the search phase,
SCS
traverses the DOM-tree of a given HTML file using depth-first search (DFS)
and identifies
leaf nodes that contain text.
On each path during the search phase, SCS removes text-formatting tags and the corresponding closing tags, but not the enclosed text. In the combine phase, starting from the first text block, SCS recursively compares the current text block with the next text block and merge them into a new block if they are siblings and with the same presentation style.
Merging text blocks provides needed
semantic information for more accurate classification and helps to prevent vanishing gradients during training.

\subsubsection*{The search phase} HTML tags are categorized into three groups.
Tags in group-1 and the enclosed text (if any) do not contribute to the main text. These tags include all document-metadata tags (e.g., $\langle$head$\rangle$, $\langle$meta$\rangle$), all scripting tags, almost all content-embedding tags (e.g., $\langle$img$\rangle$, $\langle$audio$\rangle$), all form tags, among a few others. Tags in group-2 contain text that may or may not contribute to the main content, but the tags should be excluded from a text block.
These include most of the text-formatting tags (e.g., $\langle$em$\rangle$, $\langle$strong$\rangle$), and some tabular-tags ($\langle$tbody$\rangle$, $\langle$thead$\rangle$). Tags in group-3 and the enclosed text should all be included in a text block. These include all section tags, some grouping tags (e.g., $\langle$div$\rangle$, $\langle$p$\rangle$), all list tags, some tabular tags (e.g., $\langle$table$\rangle$, $\langle$caption$\rangle$), and a few others.

Let $f$ be an HTML file. SCS($f$) performs a depth-first search (DFS) on $f$'s DOM-tree, finding a path from the root node to each leaf node. For each path during search, remove every tag in group-1, together with its closing tag (if any) and the content enclosed. Also removed is every tag in group-2 and its closing tag (if any), but not the enclosed text.

SCS($f$) creates a text block when it encounters a
group-3 tag, opening or closing,
by extracting the text between this tag and the next group-3 tag, opening or closing; and stores it with the sequence of opening tags and the sequence of class names on the path from the root to this block registered by the DFS search.
Remove closing tags.
If the text extracted is empty or invalid,  do not create a text block. Thus, the sequence of text blocks produced by SCS$(f)$ in the order of DFS-traversal is a partition of the valid text portion of $f$ in its original order, where
each text block $x$ consists of three strings of text: $\mbox{tag}(x)$, $\mbox{class}(x)$, and $\mbox{text}(x)]$, with tag($x$) being the sequence of the group-3 tags on the path from the root to the block, class$(x)$ the sequence of class names on the same path, and text$(x)$ the text enclosed in $x$.

Given a character string $s$, denote by $|s|$ the number of characters contained in $s$. Let $q$ be the height of the DOM-tree for $f$. For a  well-balanced DOM-tree, we have $q = O(\log |f|)$. Without loss of generality, assume that $q \leq O(\sqrt{|f|})$ for any $f$. All webpages we have encountered satisfy this property. Note that the length of each tag and each class name is bounded above by a constant. The following lemma is straightforward.

\begin{lemma} \label{lemma:1}
Let $x_1, x_2, \ldots, x_r$ be the sequence of text blocks generated by
SCD($f$).  We have $\sum_{i=1}^r |\mbox{tag}(x_i)|+|\mbox{class}(x_i)| \leq O(|f|)$
and $\sum_{i=1}^r |\mbox{text}(x_i)| < |f|$.
\end{lemma}

\subsubsection*{The combine phase}
Let $L$ be an array of text blocks created in the search phase in the order of DFS-traversal, and $L.i$ the $i$-th text block in $L$. Then SCS$(f) =c(L.1,L.2)$, where $c(x,y)$ is defined recursively as follows, and $x$ is stored right before $y$:

\subsubsection*{Case 1}  $x$ and $y$ are leaf siblings with the same tag sequence and the same class-name sequence. Then $x$ and $y$ belong together.
That is, $c(x,y)=z$ is a new block
with $\text{tag}(z) = \mbox{tag}(x)$, $\text{class}(z) = \mbox{class}(x)$,
and $\text{text}(z) = \mbox{text}(x) \mbox{text}(y)]$.

\subsubsection*{Case 2}
$y$ is a leaf and a single child of $x$, class($x$) = class($y$), tag($x$) is a prefix of tag($y$), and $|\mbox{tag}(x)| = |\mbox{tag}(y)|-1$. They $x$ and $y$ belong together.
That is ,combine them into a new text block $c(x,y)$ as in Case 1.

\subsubsection*{Case 3}
$y$ is a leaf, $x$ is either a sibling of $y$ or a parent of a single child $y$, then don't combine. That is, $c(x,y) = \langle x, y\rangle.$ This ``don't-combine'' rule can be justified as follows: If $x$ and $y$ are leaf siblings with $\mbox{tag}(x) \not= \mbox{tag}(y)$, then the two blocks may have different structures.
If
$x$ and $y$ are leaf siblings with $\mbox{class}(x) \not= \mbox{class}(y)$, then the two blocks may have different presentation styles. If $y$ is a leaf single child of $x$, but $\mbox{class}(x) \not= \mbox{class}(y)$, then the child would have a different intention with the parent.
\subsubsection*{Case 4} None of the above and $y$ is not the last stored. Let $z$ be its next text block in the order of DFS-traversal. Then let $c(x,y) = c(x, c(y, z)).$

\begin{theorem} \label{thm:1}
SCS$(f)$ runs in $O(|f|)$ time.
\end{theorem}

\textit{Proof sketch.} In the search phase, DFS runs in linear time in terms of the number of nodes of the DOM-tree for $f$, which is determined by the number of opening tags contained in it.Let $x_1, x_2, \ldots, x_r$ denote the number of the temporary text blocks produced by the search phase. While $r$ is much smaller than $|f|$, the search phase may still need to read through the entire file. Thus, it follows from Lemma \ref{lemma:1} that the search phase incurs a running time $O(|f|)$. The combine phase is a linear recursion on non-overlapping text blocks,and so its running time is $O(\sum_{i=1}^r |x_i|) \leq O(|f|)$.
\hfill$\square$

\subsubsection*{Remark} It is reasonable to assume that
a text block generated during the search phase will not contain both main and boilerplate contents; otherwise, even humans cannot distinguish the main text from boilerplate without inspecting the semantics of the corresponding text, which defies the purpose of the webpage. Likewise, the combine phase will in general not combine a text block for boilerplate and a text block for the main content, because to combine them, they would be siblings with the same tags and class names, which violates the general practice that the main text and boilerplate are distinguishable by humans based on their looks. Our experimental results affirm this observation.

\subsection{Word replacement for tags and class names} \label{sec:3.2}

We observe that using semantics contained in the text enclosed in a text block can help identify boilerplate. For the text enclosed inside a text block, if ``The US president ..." is in one block and ``limited time 20\% off" in another, then it is easier to tell that the former text block is
part of the main content and the latter a boilerplate
according to their meanings.
To bring in semantics to a text block, we replace each tag with the underlying word or phrase to produce a ``sentence" of words. For example, $\langle$p$\rangle$ is replaced by ``paragraph", $\langle$div$\rangle$ by ``division", and $\langle$h1$\rangle$ by ``primary headline".
Similarly, class names, especially in HTML files that follow conventional naming rules for understanding and reusing codes are often formed by words or meaningful word abbreviations. Fig. \ref{fig:2} is an example of the DOM-tree for an ABC news webpage, where the main text---the darkened part with the news text omitted---has a sequence of class names like, after text cleansing, ``story feed item scrollspy container article flex story article content story". For the blocks around the main content, we can see class names with words of ``header", ``footer", and ``sponsored headline".

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{abc_code.png}
\caption{The DOM-tree of an ABC news webpage. The darken part represents
text blocks for the main content
}
\label{fig:2}
\end{figure}

We remove hyphens, dashes, and other delimiters from class names, separate camel-case words, discard numbers, and expand abbreviations to their original words. A class name that cannot be converted to a word string (note that this is rare) is left as is.
We recommend keeping these class names to prevent information loss.
Another thing worth mentioning is that the ID attributes may be added to the class-name sequence to form an ID-class-name sequence, as used by CSS for manipulating the element with a specific ID. ID-class-name sequences are treated in the same way as class-name sequences.
\begin{figure}[h]
\centering
\includegraphics[width=0.45\textwidth]{preprocessing.png}
\caption{An example of representations of word strings for two neighboring text blocks}
\label{fig:3}
\end{figure}
Fig. \ref{fig:3} depicts an example of converting tag sequences and class-name sequences into string of words for two neighboring text blocks.

\subsection{Sequence labeling}
\begin{figure*}[t]
\centering
\includegraphics[width=\textwidth, height=2in]{achi.png}
\caption{SemText architecture}
\label{fig:4}
\end{figure*}

Figure \ref{fig:4} depicts the architecture of SemText. The preprocessing component is responsible for generating text blocks
from a given HTML file. The word-level-feature-extraction component is a depth-wise CNN model that takes text blocks
as input and generates a feature map for each text block. The block-level-sequence-labeling component is a Bi-LSTM-CRF model that labels each feature map as ``main" or ``boilerplate".

\subsection{Preprocessing}
\subsubsection*{Word embedding} \label{sec:4.1}
SemText removes stop words from each word string obtained from Section B above, and  replaces each remaining word with its word-embedding representation to bring in useful semantic and syntactic information. If a word does not appear in the pre-trained dataset, such as the unidentifiable class names aforementioned, SemText obtains an embedding representaton for it using Subword \cite{bojanowski2017enriching}, a method that overcomes this problem.

\subsubsection*{Text-block truncation}
Long text blocks are undesirable because of intense computation needed to process them. On the other hand, it is not necessary to have long text blocks for the purpose of classifying them. What is needed is a reasonable amount of text in each word string. Thus, for each text block, SemText keeps the first $n$ (e.g., $n = 50$) words (after removing stop words) in each word string and removes the rest.

\subsubsection*{Preprocessing time complexity}
Let $f$ be an HTML file for SemText.
Generating a sequence of text blocks from $f$ using SCS takes $O(|f|)$ time (Theorem \ref{thm:1}). The time for carrying out word replace and replacing a word with its word-embedding vector is constant. Truncating a text block $x$ is $O(|x|)$ time. Thus, SemText runs in $O(|f|)$ time for preprocessing.

\subsection{Word-level depth-wise CNN encoding}
We construct a CNN encoder to extract word-level features, motivated by Kim's one-layer CNN model with 1-dimensional convolution
\cite{kim2014convolutional}. An input $x_t$ has three word strings with at most $n$ words in each string, denoted by $x_t = [x_{t1}, x_{t2}, x_{t3}]$, where each word is a
$k$-d embedding vector.
If $x_{ti}$ ($i=1,2,3$) has less than $n$ words, then fill in the rest of the word slots by 0-vectors. Thus, each $x_{t,i}$ becomes an $n \times k$ matrix $\bm{M}_i = [w_{i1}, w_{i2}, \ldots, w_{in}]^T \in \mathbb{R}^{n \times k}$, where $i$  is the feature map number and $w_{ij}$ a $k$-d vertical vector

Unlike regular CNNs
that apply convolution filters to all feature maps
to form a single result, our CNN model uses different feature maps to represent different aspects of a text block not necessarily having any cross-feature-map relation with others, and uses different convolution filters on different feature maps. Thus, we perform depthwise 1-d convolution instead of combining them. An added benefit of doings so is that it significantly reduces the number of parameters. In particular, our depthwise 1-d convolution first splits the input to form different feature maps, then carries out convolution operations on each feature map
$\bm{M_i}$ with a filter $\bm{W}_{i} \in \mathbb{R}^{v \times k}$, where $v$ is the filter width. Let $\bm{M}_{i(j:j+v-1)}$ denote a filter-size block that contains $m$ word-embedding vectors, then the corresponding feature map for the current window is $c_{ij} = \bm{W}_i^T \bm{M}_{j:j+v-1} + b_{ij},$  where $b_{ij}$ denotes a bias factor. Sliding the filter in the vertical direction, we obtain a feature map as follows: $c_i =[c_{i1}, c_{i2}, c_{i3}, \ldots, c_{i(n-v+1)}].$ Convoluting each feature map with the corresponding filter, and then perform max-pooling over each feature map that extracts the largest number in the map, resulting in a 3-tuple of numerical values for $x_t$.

Repeat the above procedure for $\ell$ different filters with different kernel sizes to produce $\ell$ 3-tuples of numerical values. Group them according to feature maps
and flatten the results into a 1-d output, denoted by $\hat{x}_t$, to produce the final feature map of $x_t$. Figure \ref{fig:4} illustrates the data flow of this process in the word-level feature extraction module.

\subsection{Block-level Bi-LSTM-CRF sequence labeling}
At the block-level, SemText uses the Bi-LSTM-CRF \cite{huang2015bidirectional} architecture to capture context for the block sequence. To learn a contextual representation $\hat{h}_t$ and a context dependency $\hat{c}_t$, the feature map $\hat{x}_t$ generated by the CNN model at time $t$, as well as the previous block information $\hat{h}_{t-1}$ and $\hat{c}_{t-1}$, are fed to a long-short-term memory (LSTM) unit \cite{hochreiter1997long}. LSTM units are connected forwardly, thus previous block information can be captured, which may impact the representation and output for the current input block. LSTM is designed to resolve the gradient vanishing problem that can be encountered when training a traditional recurrent-neural-network model, allowing long-term dependencies being captured. It uses a set of gates to decide when a certain dependence should be remembered, forgotten, or outputted.

\begin{comment}
An LSTM unit at time $t$ is updated as follows:
\begin{align*}
\bm{u_t} & = \sigma(W_u[\hat{x}_t;h_{t-1}] + b_u), \\
\bm{f_t} & = \sigma(W_f[\hat{x}_t;h_{t-1}] + b_f), \\
\bm{o_t} & = \sigma(W_o[\hat{x}_t;h_{t-1}] + b_o), \\
\bm{\hat{c}_t} & = f_t\odot \hat{c}_{t-1} + u_t\odot \tanh(W_{\hat{c}}[x_t; \hat{h_{t-1}}] + b_{\hat{c}}), \\
\bm{\hat{h}_t} & = o_t \odot \tanh(\hat{c}_t),
\end{align*}
where $u_t$, $f_t$, $o_t$ denote update gate, forget gate, output gate respectively; weights $W_u$, $W_f$, $W_o$, and biases $b_u$, $b_f$, $b_o$ are the parameters for its associated gate; $\sigma$ is the sigmoid function and $\odot$ is element-wise matrix multiplication.
\end{comment}

LSTM, however, has a forward-only direction capable of capturing the past context only. To make use of forward and backward information, bidirectional LSTM (Bi-LSTM) \cite{graves2013speech} puts two LSTM together, one in the forward direction and one in the backward direction. Thus, the contextual representation of the $t$-th text block $x_t$  can be rewritten as $\hat{h}_t = [\overrightarrow{h_t}; \overleftarrow{h_t}]$. To make effective use of past and future prediction results, a CRF layer is added to the output of Bi-LSTM for jointly decoding the best chain of labels. Let $H$ denote the contextual representation generated by Bi-LSTM through time, that is, $H = [\hat{h}_1, \hat{h}_2, \ldots, \hat{h}_m].$ The CRF layer maximizes conditional probability $p(Y|H) = \exp({\mbox{score}(H, Y)})/\sum_{Y'} \exp({\mbox{score}(H, Y')})$ to find the highest-scored result over all possible label sequences, where $Y'$ represent a possible sequence and $\mbox{score}(H, Y) = \sum_{i=1}^m \log s(y_{i}, H) + \log t(y_{i-1}, y_{i}, H)$ is a log potential function with $s$ being an emission potential and $t$ a transition potential. The emission potential is defined by a fully-connected layer, transferring the output of Bi-RNN at timestamp $t$ to a score. The transition potential denote a transition probability from the previous tag $y_{i-1}$ to the current tag $y_i$. Adding the CRF layer is helpful to cultivate strong correlations that exist between labels of adjacent neighborhoods.

\section{Evaluation}\label{sec:5}
\subsection{Datasets}
The CleanEval dataset \cite{baroni2008cleaneval} is a cross-domain benchmark, consisting of 55 webpages for training (development) and 676 webpages for evaluation. The ``clean text file" for each webpage does not align properly between text blocks of the two files,  and so cannot be used directly for analysing HTML files at the tag level. We adopt Vogels et al.'s method \cite{vogels2018web2text} to make proper alignment.
The latest GoogleTrends-2017 dataset \cite{leonhardt2020boilerplate} published in 2020, consists of 180 documents randomly sampled from a larger pool of websites retrieved from the top Google queries with the corresponding main text.
It is customary to use 80 webpages for training and the remaining 100 webpages for testing when using GoogleTrends-2017.

These two datasets, however, are insufficient to train a neural network.
It is also more desirable to have a training dataset
mixing of past and contemporary webpages from a wider range of domains. To this end, we combine the following three published type-1 datasets:
(1) the dataset
annotated by Uzun E. et al. \cite{uzun2013hybrid}, consisting of 1,170 webpages from 573 domains
published from 2008 to 2011; (2) the dataset annotated by Peters M. and Lecocq D. \cite{peters2013content}, consisting of 1,381 webpages collected in late 2012 from RSS feeds, news articles, and blogs; (3) the TECO Benchmark Suite, presented by Alarte J. \cite{alarte2015temex}, consisting of webpages collected from 130 domains during the period from 2013 to 2020. TECO is a multilingual dataset made for testing language independent features and we remove non-English and non-type-1 webpages from it. We
train SemText on this combined dataset, then fine-tune it using the 55 training webpages in CleanEval and 80 webpages in GoogleTreands-2017. This allows us to demonstrate the robustness of SemText on webpages of different structures across a wider spectrum.

We also evaluate SemText on 250 type-2 webpages
consisting of 70 pages sampled from the TECO Forum dataset with non-English pages removed\footnote{This dataset is available at \url{https://github.com/dreamlegends/Semtext}.}, and
180 webpages collected from
nine large Q\&A sites including Quora and Yahoo Answer, with main content extracted by custom-built spiders.

\subsection{Model Setup}

Let $n=50$ be the maximum number of words for each word-string component (without stopwords).
For each text block $x$, we translate HTML tags in $\text{tag}(x)$ using the W3C HTML5 reference\footnote{https://dev.w3.org/html5/html-author/}. Class names in class($x$) are processed as described in Section \ref{sec:3.2}. While we have not seen any text block $x$ with tag$(x)$ or class$(x)$ containing more than 50 words, it is common for text$(x)$ to exceed the 50-word limit and so truncation is used to trim it down to 50.
With an average of 10 to 15 words per sentence in the main text (with stopwords removed), 50 words can cover 4--5 sentences, sufficient for representing the semantics of a text block.

Let $m=85$ be the upper bound for the number of text blocks produced by SCS, which is adequate to cover 90\% of news articles and would not cause excessive computation.
If SCS produces more than 85 text blocks for an HTML file, we divide them into sub-sequences in the same order as evenly as possible so that the number of text blocks in each sub-sequence is the largest possible bounded above by 85.

We use kernels of sizes of 3, 5, and 7 for the word-level CNN encoder, with the corresponding numbers of filters being 128, 128, and 256, for a total number of filters $\ell = 512$. This setting covers consecutive words in almost every aspect to capture the essential meaning of a text block.
There are 512 hidden units for a single Bi-LSTM. Parameter optimization is performed using stochastic gradient descent (SGD) with a batch size of 64.

We divide at random the combined dataset with a 75-25 split into a training set and a validation set, and choose the checkpoint with the highest F1 score on the validation set.
Our model is implemented on Pytorch and trained on a single NVIDIA GeForce GTX 2080Ti GPU.

\subsection{Comparison results}

We compare SemText with BoilerNet \cite{leonhardt2020boilerplate}, Web2Text \cite{vogels2018web2text}, and BoilerPipe \cite{kohlschutter2010boilerplate},
the best models so far,
under the measures of average precision and recall.
To provide fair comparison, we train and test these models
as we train SemText using the same combined dataset and fine-tune them
using the same development data of CleanEval and GoodTrends (except BoilerPipe that
is not built for fine-tuning).
We name the models trained this way as, respectively,
BoilerNet-C, Web2Text-C, and BoilerPipe-C.
We also train these models using the original development data of CleanEval
to obtain, respectively, three models named BoilerNet-1, Web2Text-1, and
BoilerPipe-1; and using the original development data of GoogleTrends to
obtain, respectively, three models named BoilerNet-2, Web2Text-2, and BoilderPipe-2.

We test all models on the same test data of CleanEval and GoogleTrends.
Evaluation is carried out at the text-block level and blocks are treated equally with the same weight.
Table \ref{tab:1} shows the evaluation results,
where
1$|$2 means that the results of the corresponding model version 1 (e.g., BoilerPipe-1) are under
the CleanEval column and version 2 (e.g., BoilerPipe-2) are
under the GoogleTrends column. The numbers in boldface are the highest.

\begin{center}
\begin{table}[h]
\centering
\caption{Comparison results}
\begin{tabular}{l|c|c|c||c|c|c}
\hline \multirow{2}{*}{\bf Methods} & \multicolumn{3}{c||}{\textbf{CleanEval}} & \multicolumn{3}{c}{\textbf{GoogleTrends}} \\
\cline{2-7}     & \bf ~P~ & \bf ~R~ & \bf ~F1 & \bf ~P~ & \bf ~R~ & \bf ~F1\\ \hline
BoilerPipe-C           & 0.81 	& 0.67 		& 0.73  &0.74 	& 0.61 		& 0.69 \\
Web2Text-C		                & 0.80  & 0.76      & 0.78	&0.76 	& 0.73 		& 0.74 \\
BoilerNet-C		                                &0.88  &0.85  &0.86     &0.87 	& \textbf{0.86}		& 0.87\\
\hline
BoilerPipe-1$|$2		           & 0.87 	& 0.73 		& 0.79  &0.80 	& 0.66 		& 0.72 \\
Web2Text-1$|$2		            & 0.85  & 0.82      & 0.83	&0.82 	& 0.74 		& 0.78 \\
BoilerNet-1$|$2		                                &0.85  &0.80  &0.82     & 0.86  & 0.82      & 0.84\\
\hline
\textbf{SemText}                             &\textbf{0.91} 		& \textbf{0.89}		& \textbf{0.90}   &\textbf{0.92} 	& \textbf{0.86} 		& \textbf{0.89} \\
\hline
\end{tabular}
\label{tab:1}
\end{table}
\end{center}

Indications of these results are summarized below:
\begin{enumerate}
\item
SemText outperforms
the previous models under each
category
except that
SemText and BoilerNet-C have the same recall on GoogleTrends.

\item BoilerNet-C is substantially better
than BoilerPipe-C and Web2Text-C on both datasets.
\item BoilerPipe-C and Web2Text-C on GoogleTrends are substantially worse than themselves
on CleanEval. Likewise, BoilerPipe-2 and Web2Text-2 are substantially worse
than BoilerPipe-1 and Web2Text-1, respectively.
\item Web2Text-1 is slightly better than BoilerNet-1, and Web2Text-2 is substantially
lower than BoilerNet-2.
\item The results of SemText and BoilerNet are consistent on both datasets, but the results of BoilerPipe and Web2Text are not.
\end{enumerate}
A possible cause of inconsistency of BoilerPipe and Web2Text across different datasets is that some of their handcrafted features
are sensible to webpage structure.
For example,
both web structure and tag usage have changed gradually in the past ten years,
and placing ads from a sidebar to the main content area can increase the link density and decrease the text density, making the text-density feature fail on contemporary webpages. Tag TD, which was widely used
before 2009, was replaced by tag DIV in the web evolution. Thus, BoilerPipe and Web2Text
would provide anticipated performance only when
they are trained and tested on datasets from the same period.
BoilerNet, on the other hand, does benefit from the combined dataset, which indicates
that neural network models can indeed provide a better and more robust representation. The combined dataset also provides a large vocabulary size to alleviate the Out-of-Vocabulary problem mentioned in the last paragraph of Section \ref{sec:2}. Since each tag is treated as a token in the BoilerNet, the change of tag usage may still affect the model. SemText mitigates this drawback by taking advantage of the semantics registered inside the tags.

SemText also performs reasonably well on type-2 webpages without any training on type-2 webpages and is substantially better than BoilerNet-C,
which in turn is substantially better than Web2Text-C and BoilerPipc-C (see the upper part of Table \ref{tab:3}).
\begin{center}
\begin{table}[h]
\centering
\caption{Comparison results on the Type-2 dataset}
\begin{tabular}{l|c|c|c}
\hline \bf Methods & \bf ~P~ & \bf ~R~ & \bf ~F1 \\ \hline
BoilerPipe-C            & \textbf{0.93} &0.12 &0.21	\\
Web2Text-C              &0.59   &0.73 &	0.65 \\
BoilerNet-C             &0.66   & 0.81       &0.72	\\
\textbf{SemText}        &0.79		& \textbf{ 0.84}		& \textbf{0.82}   \\
\hline
BoilerPipe-C1          &\textbf{0.92} &0.19 &0.32 \\
Web2Text-C1	         &0.63 &0.75 &0.68	\\
BoilerNet-C1           &0.72 &\textbf{0.87} &0.79	\\
\textbf{SemText-1 }    & 0.85	&\textbf{0.87}		& \textbf{0.86}   \\
\hline
\end{tabular}
\label{tab:3}
\end{table}
\end{center}
Next, we retrain all models by including type-2 webpages in the training dataset and
evaluate how well they perform on type-2 pages.
To this end, we randomly select 50 webpages from the type-2 dataset and
add them to the combined dataset of type-1 pages.
The remaining 200 type-2 webpages are used for evaluation.
We obtain SemText-1, BoilerNet-C1, BoilerPipe-C1, and Web2Text-C1, with
the evaluation results shown in the lower part of
Table \ref{tab:3}.
It can be seen that all models have improved performance with the
same performance ranking as before.
In particular, under the F1 measure, SemText-1 is 8.87\% higher than BoilerNet-C1.
While SemText-1 and BoilerNet-C1 have the same recall, SemText-1's precision is much higher.
As shown in Fig \ref{fig:5}, BoilerNet-C1 mistakenly labels the question list in the sidebar and part of the text in the header as the main content, and SemText-1 successfully removes the side bar and the header completely. We observe that the mislabeled text is similar to the main content. The improvement of SemText can be attributed to adding class info (e.g.
question list, sidebar) to the representation of the question-list text blocks in the side bar.
BoilerPipe has extremely high precision with extremely low recall because BoilerPipe only extracts the first block of the main content.

\begin{figure}[h]
\centering
\includegraphics[width=0.45\textwidth, height=2.5in]{asd.jpg}

\medskip
\begin{tabular}{cc}
(a) SemText-1 \hspace{0.1in} & \hspace{0.25in} (b) BoilerNet-C1
\end{tabular}
\caption{A type-2 page, where the highlighted texts enclosed in red boxes are the corresponding main content}
\label{fig:5}
\end{figure}
\subsection{Ablation study}
Let SemText\_TXT denote the baseline of SemText with only text sequence, Semtext\_TAG = SemText\_TXT plus tag sequence, and SemText\_CLS =  SemText\_TXT plus class sequence. Evaluation results are shown in Table \ref{tab:4}.
\begin{center}
\begin{table}[h]
\centering
\caption{Ablation results under GoogleTrends-2017}
\begin{tabular}{l|c|c|c}
\hline
{\bf Methods}   & \bf ~P~ & \bf ~R~ & \bf ~F1\\ \hline
SemText\_TXT    &0.82	& \textbf{0.87}		& 0.84\\
SemText\_TAG	&0.90 	& 0.84 		& 0.87 \\
SemText\_CLS    &0.89 	& 0.85		& 0.87\\
\textbf{SemText}       &\textbf{0.92} 	& 0.86 		& \textbf{0.89} \\
\hline
\end{tabular}
\label{tab:4}
\end{table}
\end{center}
We can see that SemText\_TXT has the lowest F1 score, while SemText\_TAG and
SemText\_CLS each improves the F1 score over SemTexT\_TXT, indicating that adding a tag sequence and a class sequence for a text block each contributes to the improvement of the baseline model.
A possible cause of the lowest precision score of SemText\_TXT is that it tends to mislabel text blocks that are similar to the main content. On the other hand, SEMText\_TXT has a higher recall, which is
expected. Adding a tag sequence and a class sequence both
contribute to a higher precision, as indented; but they also slightly decrease the recall scores.

In summary,  SemText consistently achieves substantially higher F1 scores across type-1 and type-2 webpages over all the evaluated models. Moreover, all models, after trained, run about the same time on the evaluation data. In particular, it takes an average of 38 ms for SemText to extract the main text on a single NVIDIA GeForce GTX 2080Ti GPU, with an average of 683 DOM nodes per page in the evaluation data.

\section{Conclusion and Final Remarks}\label{sec:6}
We have shown that using the semantic representation of text blocks proposed in the paper and classifying them by a hierarchical neural network model is promising on boilerplate detection.
It would be interesting to explore if this approach may be beneficial to other applications dealing with webpages.

Analyzing the labeling results, we find that mislabeled blocks by SemText often appear at the beginning of a sub-sequence. This phenomenon has a natural explanation: A text block without labels of previous text blocks would  more likely be misclassified, and occurs more often on the type-2 dataset. Thus, it would be interesting to investigate how to
label the ``entire sequence'' of text blocks without needing to break it into sub-sequences.

A long sequence is unavoidable on
community-based Q\&A webpages. On the other hand, the sequencing-labeling model
confines the length of an input sequence for effective training, and we break a long sequence into sub-sequences somewhat arbitrarily to meet this requirement. Considering that we have already achieved the highest F1 scores over previous methods even with such a simple strategy, it would make sense to investigate how to make use of labels generated from a previous sub-sequence. For example, we may directly use a few text blocks in the previous sequence with their generated labels. An obstacle in this approach is that some of these labels may be incorrect. Thus, we would need to figure out how many previous text blocks should be used to minimize the negative impact of incorrect labels. This would likely become a combinatorial pursuit similar to those for achieving fault tolerance. We may also break a long sequence of text blocks into overlapping sub-sequences. In this direction we would need to investigate
how much overlap would be appropriate and how to resolve conflicting labels  on overlapped text blocks.

Finally, we may explore a tree-structured LSTM-neural-network model to label text blocks. This approach might be more appropriate for labeling sibling blocks that have the same structure with the same look.
This direction would likely require more sophisticated modeling efforts.

The code for SemText is available at \url{https://github.com/dreamlegends/Semtext}.
\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


text:
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SHAPES_ELLIPSE_SHAPE_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SHAPES_ELLIPSE_SHAPE_H_

#include "base/check_op.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/layout/shapes/shape.h"
#include "ui/gfx/geometry/point_f.h"

namespace blink {

class CORE_EXPORT EllipseShape final : public Shape {
 public:
  EllipseShape(const gfx::PointF& center, float radius_x, float radius_y)
      : center_(center), radius_x_(radius_x), radius_y_(radius_y) {
    DCHECK_GE(radius_x, 0);
    DCHECK_GE(radius_y, 0);
  }

  LayoutRect ShapeMarginLogicalBoundingBox() const override;
  bool IsEmpty() const override { return !radius_x_ || !radius_y_; }
  LineSegment GetExcludedInterval(LayoutUnit logical_top,
                                  LayoutUnit logical_height) const override;
  void BuildDisplayPaths(DisplayPaths&) const override;

 private:
  gfx::PointF center_;
  float radius_x_;
  float radius_y_;
};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SHAPES_ELLIPSE_SHAPE_H_


text:
Trying to effectuate service to a non-English speaker? What about a bilingual individual living in a foreign country? Whatever your circumstances, you'll likely need translation services in order for your case to hold up in court. Here's how to know when it's time to seek out our translation experience and keep your legal proceedings on track.
Translation requirements for international process service
The requirements for effectuating service internationally are complex, and the stakes are high—failure to comply with the regulations outlined by each country and its application convention or treaty can result in incomplete service or even a dismissed case.
For example, in order to complete service to member states of the Hague Service Convention, all documents must be served in the official language of the country, or include a complete translation of every English-language document.
But for countries that are not members of the Hague Service Convention, service via the more traditional Letters Rogatory may be required. Letters Rogatory are a formal request from the judge or court of one country to the judicial authority of a foreign country asking them to recognize the authority of the domestic court and to authorize the completion of process service.
In order for the foreign court to recognize the request of the Letters Rogatory, the request must comply with that country's laws, and in the case of effectuating service, that may require a full translation of all the documents involved in the case.
Additional translation requirements
Because the requirements for international process service are so complex, individuals can waste countless hours and incur enormous legal fees if they attempt to complete process service internationally without the aid of an experienced process server. And in the worst-case scenario, an incorrect attempt at completing service may result in a case being dismissed altogether.
Avoid trying to navigate the complexities of international process service on your own and rely on a trusted process server with international experience to manage all your translation and process service needs. Whether it's translating documents into one language or three all while figuring out which countries participate in which treaties, we're here to make sure your case proceeds as quickly as possible.
DGR Legal
Morris Plains, NJ 07950-3000
Email: service@dgrlegal.com
How Do You Serve a Bank?
The Ultimate Guide to Process Service in New Jersey
DGR Wins "Best Of" in Courier Service
DGR Legal Voted "Best Of" in Process Service and Takes First in Attorney Services
Arbitration Awards & International Process Service: Case In Point
DGR News
Electronic Service of Process
Legislation/Bills
NAPPS
NJPPSA
Process Server History
Process Server Standards
Process Server Tips
Process Service Best Practices
UIDDA
JOIN OVER 6,000 OTHERS
Sign up for our newsletter and get the latest news and updates from our team.


text:
Pani at Aventura Mall Offers an Enchanted Respite for Shoppers
Broward Mayor Fears Drunken Revelry After Judge Nixes Liquor Curfew
Farmer's Table Serves Up Artistic Vegan Dessert With French Flair
Wendy Rhodes
| For the Vegetarians and Vegans |
Wendy Rhodes | July 18, 2016 | 10:22am
If you're tired of the vegan options at traditional restaurants being limited to bland veggie burgers or boring salads, Farmer's Table in Boca Raton is offering you a bit more variety.
As one of the most vegan-friendly, high-end restaurants in Palm Beach County, Farmer's Table boasts a modern, country feel with wooden tables, an enormous outdoor seating area, and a large banquet room. Just outside the entrance is the actual garden where the fresh herbs and spices grow that make Farmer's Table dishes so flavorful.
While not a vegan restaurant, plentiful and varied vegan offerings include unique salads, wraps, and creative entrées, including Vegan Mushroom Rueben, Shepherd's Pie, Buddha Bowl, and a slew of side dishes.
Save room for the pièce de résistance: Farmer's Table's tantalizing desserts, courtesy of executive pastry chef Ivy Haaks.
Treelion Brings Authentic Vegan Jamaican Food to Hollywood
Parlour Vegan Bakery Opening Second Location in Boca
Four Unlikely Places to Take Your Vegan Friend for Dinner
Some of Haaks' creative vegan delicacies include a S'mores Parfait with fudge filling and marshmallow topping, carrot cake with cream cheese frosting, raisins, and walnuts, and a rich, gluten-free chocolate fudge cake.
One of Haaks' most in-demand innovations is her chocolate mousse cake — a dome of chocolate cake made from homemade almond milk, topped with lighter-than-air mousse, and coated in her signature chocolate glaze.
But it is Haaks' Opera Cake that has customers singing for more.
This French favorite is made up of three layers of mocha cake, filled with a light coffee buttercream and a creamy ganache, then covered with a chocolaty glaze and served with housemade dairy-free ice cream.
Haaks became vegan in her early twenties after suffering from various health issues. She began her career as a wholesale vegan baker in New York City in the '90s but found the reception to be lukewarm.
"It was still very hippie and counterculture," Haaks says of the indifference toward vegan fare at the time. "Nobody was interested."
Although she loved baking, she knew her business in its current state was unsustainable, so she packed her bags and jetted off to France to enroll in pastry school at Paris's famed Le Cordon Bleu institute.
After spending a year and a half perfecting the art of French pastry, she moved to Los Angeles to become the executive pastry chef at M. Café de Chaya, followed by the ever-trendy Real Food Daily, where she created desserts with the goal of marrying vegan baking with her newly developed pastry expertise.
Her timing was perfect, she recalls, because the United States was on the cusp of a dramatic culinary shift.
"By then, vegan was just starting to trend and become a hip thing" she says of her 2005 return.
Haaks relocated to Florida in 2011 to work as a private chef and shortly thereafter met Mitchell Robbins. Robbins shared with her his vision of opening a farm-to-table restaurant with a commitment to utilizing fresh, local produce to create clean foods that are never deep-fried nor microwaved.
In February 2014, Haaks became the official provider of decadent meal finishers at Farmer's Table. Operating as a business-within-a-business, Haaks' company, Desserts by Ivy, provides all of Farmer's Table's desserts, specialty vegan cake orders, and dessert catering requests.
"Business has been booming ever since," she says happily.
A self-proclaimed workaholic, Haaks is in the process of launching a home-delivery meal service called Home Fresh Healthy Organic Meals, which will draw heavily from her vegan cooking background.
"I've never felt better," she says of her current, mostly vegan diet. "So in my estimation, vegan works. I'm healthy, I don't go to the doctor, and I don't take pills."
Haaks points out that her lofty goal was to recreate vegan versions of elegant French pastry as opposed to simply making vegan cupcakes or cookies. Today, she couldn't be prouder of the success she has worked so hard to achieve.
"There aren't any beautiful vegan pastries," she says of the reason she created her alluring masterpieces. "That's what's unique, and I don't think you're going to find that anywhere else in Boca."
(Note from the Vegan Police: Vegan and nonvegan items are prepared in a shared kitchen and as such risk cross-contamination with animal products. Desserts by Ivy are prepared in a separate, meat-free, nonvegan kitchen.)
Farmer's Table is located adjacent to the Wyndham Hotel Boca Raton at 1901 N. Military Trail, Boca Raton. Call them at 561-417-5836 for find them on Facebook at farmerstableboca
Wendy Rhodes is a freelance writer and award-winning author. Follow her on Facebook and Twitter @WendyRhodesFL.
For the Vegetarians and Vegans
Wendy Rhodes is a lover of rock 'n' roll and all things vegan. She has witnessed a green flash, kissed a live shark, and stood atop an active volcano. She is always open to new story ideas.
Facebook: Wendy Rhodes
Twitter: @WendyRhodesFl
2021 Swank Table Schedule Is Loaded with South Florida...
Mai-Kai Abruptly Closes — Then Assures It Will Reopen UPDATED
Spanning Two Warehouse Buildings, Sistrunk Marketplace &...
Unit B Eatery and Agave Bandido Come to Pembroke Pines


In a moving ceremony, Dr. Izzeldin Abuelaish (pictured left) bestowed The Daughters for Life Award on four BGU women students last Thursday.
The Daughters For Life Foundation is a Canadian philanthropic organization that provides awards and scholarships to young women in their final year of studies at universities in the Middle East. The Daughters for Life Award granted by the foundation recognizes female students who have overcome hardship and made an outstanding contribution to the improvement of the lives of girls and young women.
This award is presented in memory of Bessan, Mayar and Aya, the three daughters of Dr. Izzeldin Abuelaish, President of the Foundation, who were tragically killed on January 16, 2009, when an IDF tank shell hit their home in the Jabalia refugee camp in Gaza during the waning days of Operation Cast Lead.
The Foundation seeks to perpetuate their love of life and learning and their hopes and dreams for an educated future, as agents of change in the journey towards peace. Dr. Abuelaish was accompanied by his five other children Dalal, Shatha, Mohammed, Rofah and Abdallah.
Rector Prof. Zvi HaCohen remarked on how unusual it was for someone to honor the memory of their children by aiding the people who had harmed his family.
"It is unexpected to give scholarships to the people who hurt your family. I learn a lesson from it – possibly, somehow, eventually, two peoples can live in peace together," he told Dr. Abuelaish and his family.
"If you let each other live, you don't have to be afraid of each other," HaCohen said.
Dr. Abuelaish gave an impassioned speech focusing on the need to empower women to secure the peaceful future of humanity. "When I look at Nitzan, Livnat, Arij and Hala, I see my daughters Bessan, Mayar and Aya. For the sake of humanity, we need to help them to be strong. Nothing is impossible in life. We need to give women the right opportunities," he declared.
"When we see anything wrong, we must speak out. We want these women to be educated to speak out. Our enemy is ignorance of ourselves and others," he urged.
Dr. Abuelaish spoke fondly of the Negev and Soroka University Medical Center where he had worked as an OB/GYN, noting the "goodness" of Negev residents. "The cry of a newborn baby is a cry of hope. A new life is coming. It is our responsibility to secure the future of these babies. Their future is in the hands of their mothers," he said.
"Don't waste time blaming others. Blaming is the best way to escape responsibility," Dr. Abuelaish admonished.
Dalal Abuelaish reminded the recipients that the Foundation also supports graduate work abroad in the US and Canada, offering full tuition, room and board and annual round trip tickets home.
After marrying at age eighteen, Arij decided to change her life. She got divorced and resolved to pursue an academic degree. Her parents had no way of supporting her studies, but Arij was determined to reach her goal. She volunteers teaching Hebrew at the community center in her hometown of Hura. Many of the girls she teaches have dropped out of high school and married very young, and they find it difficult to function in Israeli society because of their poor Hebrew skills. Arij encourages them to improve their Hebrew and to pursue university studies. She serves as a role model to them – and she proves to them that anything is possible.
Hala volunteers at a community center in her hometown of Rahat, counselling teenage girls how to enroll at the university. She also leads workshops for teenagers to boost their self-image and help them decide on their future careers.
Nitzan Kaufer of the Departments of Psychology and Cognitive Sciences: Nitzan volunteers in a social club for youth at risk. She mentors young girls who have undergone sexual harassment and assault, helping them to understand that they should not feel guilty about what happened, and teaches them how to protect themselves in the future. She hopes to become a child therapist.
Livnat volunteers in a women's psychiatric ward at the psychiatric hospital in Beer-Sheva. She encourages inmates to believe that their lives will change for the better and hopes to work with mentally ill people in the future. Livnat has always been a perfectionist and has never let herself quit anything she has started. This determination has helped her to overcome financial hardships and she now tries to instill this determination in others.
The Award Recipients with Dr. Izzeldin Abuelaish (center, pink shirt) and his children at the ceremony at BGU.


Don't let people bring their rain cloud to your picnic.Have you ever wondered why somebody will get dressed up and come out just to sit in the corner looking like they're mad at the world??? It's because misery loves company and deep down, they want you miserable and unhappy too. I'm a very loyal friend, but I'm sorry... at this age that's just way too much work. At a certain point and time in life you begin to figure out the things you can live with and the things you can live without. Negative energy.... I can live without. It's like a cancer and it spreads…. Cut it out. It doesn't mean you don't love 'em. It just means you love peace more.


text:
Q: Transferring files to a message broker We are setting up a database with a front end program that parses csv files and dumps them into the DB. Files are coming from many locations at the same time and need to be persisted if anything goes wrong.
Is a message broker like rabbitmq a good application for this? I need a queue of some sort that can be read from the back end.

A:
Is a message broker like rabbitmq a good application for this?

Yes, but I wouldn't recommend you to send large files to RabbitMQ especially if you'd like to use persistent messages. If this is the case, I'd save a file to a storage (cloud, cache, etc) and send its name/path in a message. A worker process would pick up a message, then download a file, parse it and save its contents to database. This way you can distribute files among worker processes and reduce load on broker. It would allow you to scale easily.

redpajama_set_name: RedPajamaStackExchange


text:
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.content.browser;

import android.Manifest;
import android.annotation.SuppressLint;
import android.content.pm.PackageManager;
import android.os.Process;

import androidx.annotation.VisibleForTesting;

import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeClassQualifiedName;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.net.ConnectionType;
import org.chromium.net.NetworkChangeNotifierAutoDetect;
import org.chromium.net.RegistrationPolicyAlwaysRegister;

import java.util.ArrayList;
import java.util.List;

/**
 * Contains the Java code used by the BackgroundSyncNetworkObserverAndroid C++ class.
 *
 * The purpose of this class is to listen for and forward network connectivity events to the
 * BackgroundSyncNetworkObserverAndroid objects even when the application is paused. The standard
 * NetworkChangeNotifier does not listen for connectivity events when the application is paused.
 *
 * This class maintains a NetworkChangeNotifierAutoDetect, which exists for as long as any
 * BackgroundSyncNetworkObserverAndroid objects are registered.
 *
 * This class lives on the main thread.
 */
@JNINamespace("content")
@VisibleForTesting
public class BackgroundSyncNetworkObserver implements NetworkChangeNotifierAutoDetect.Observer {
    private static final String TAG = "BgSyncNetObserver";
    private static boolean sSetConnectionTypeForTesting;
    private NetworkChangeNotifierAutoDetect mNotifier;

    // The singleton instance.
    @SuppressLint("StaticFieldLeak")
    private static BackgroundSyncNetworkObserver sInstance;

    // List of native observers. These are each called when the network state changes.
    private List<Long> mNativePtrs;

    private @ConnectionType int mLastBroadcastConnectionType;
    private boolean mHasBroadcastConnectionType;

    @VisibleForTesting
    public static void setConnectionTypeForTesting(@ConnectionType int connectionType) {
        sSetConnectionTypeForTesting = true;
        getBackgroundSyncNetworkObserver().broadcastNetworkChangeIfNecessary(connectionType);
    }

    private BackgroundSyncNetworkObserver() {
        ThreadUtils.assertOnUiThread();
        mNativePtrs = new ArrayList<Long>();
        sSetConnectionTypeForTesting = false;
    }

    private static boolean canCreateObserver() {
        return ApiCompatibilityUtils.checkPermission(ContextUtils.getApplicationContext(),
                       Manifest.permission.ACCESS_NETWORK_STATE, Process.myPid(), Process.myUid())
                == PackageManager.PERMISSION_GRANTED;
    }

    private static BackgroundSyncNetworkObserver getBackgroundSyncNetworkObserver() {
        if (sInstance == null) {
            sInstance = new BackgroundSyncNetworkObserver();
        }
        return sInstance;
    }

    @CalledByNative
    private static BackgroundSyncNetworkObserver createObserver(long nativePtr) {
        ThreadUtils.assertOnUiThread();

        getBackgroundSyncNetworkObserver().registerObserver(nativePtr);
        return sInstance;
    }

    private void registerObserver(final long nativePtr) {
        ThreadUtils.assertOnUiThread();
        if (!canCreateObserver()) {
            RecordHistogram.recordBooleanHistogram(
                    "BackgroundSync.NetworkObserver.HasPermission", false);
            return;
        }

        // Create the NetworkChangeNotifierAutoDetect if it does not exist already.
        if (mNotifier == null) {
            mNotifier = new NetworkChangeNotifierAutoDetect(
                    this, new RegistrationPolicyAlwaysRegister());
            RecordHistogram.recordBooleanHistogram(
                    "BackgroundSync.NetworkObserver.HasPermission", true);
        }
        mNativePtrs.add(nativePtr);

        BackgroundSyncNetworkObserverJni.get().notifyConnectionTypeChanged(nativePtr,
                BackgroundSyncNetworkObserver.this,
                mNotifier.getCurrentNetworkState().getConnectionType());
    }

    @CalledByNative
    private void removeObserver(long nativePtr) {
        ThreadUtils.assertOnUiThread();
        mNativePtrs.remove(nativePtr);
        // Destroy the NetworkChangeNotifierAutoDetect if there are no more observers.
        if (mNativePtrs.size() == 0 && mNotifier != null) {
            mNotifier.destroy();
            mNotifier = null;
        }
    }

    private void broadcastNetworkChangeIfNecessary(@ConnectionType int newConnectionType) {
        if (mHasBroadcastConnectionType && newConnectionType == mLastBroadcastConnectionType) {
            return;
        }

        mHasBroadcastConnectionType = true;
        mLastBroadcastConnectionType = newConnectionType;
        for (Long nativePtr : mNativePtrs) {
            BackgroundSyncNetworkObserverJni.get().notifyConnectionTypeChanged(
                    nativePtr, BackgroundSyncNetworkObserver.this, newConnectionType);
        }
    }

    @Override
    public void onConnectionTypeChanged(@ConnectionType int newConnectionType) {
        ThreadUtils.assertOnUiThread();
        if (sSetConnectionTypeForTesting) return;

        broadcastNetworkChangeIfNecessary(newConnectionType);
    }

    @Override
    public void onConnectionCostChanged(int newConnectionCost) {}

    @Override
    public void onConnectionSubtypeChanged(int newConnectionSubtype) {}

    @Override
    public void onNetworkConnect(long netId, @ConnectionType int connectionType) {
        ThreadUtils.assertOnUiThread();
        if (sSetConnectionTypeForTesting) return;

        // If we're in doze mode (N+ devices), onConnectionTypeChanged may not
        // be called, but this function should. So update the connection type
        // if necessary.
        broadcastNetworkChangeIfNecessary(mNotifier.getCurrentNetworkState().getConnectionType());
    }

    @Override
    public void onNetworkSoonToDisconnect(long netId) {}

    @Override
    public void onNetworkDisconnect(long netId) {
        ThreadUtils.assertOnUiThread();
        if (sSetConnectionTypeForTesting) return;

        // If we're in doze mode (N+ devices), onConnectionTypeChanged may not
        // be called, but this function should. So update the connection type
        // if necessary.
        broadcastNetworkChangeIfNecessary(mNotifier.getCurrentNetworkState().getConnectionType());
    }

    @Override
    public void purgeActiveNetworkList(long[] activeNetIds) {}

    @NativeMethods
    interface Natives {
        @NativeClassQualifiedName("BackgroundSyncNetworkObserverAndroid::Observer")
        void notifyConnectionTypeChanged(
                long nativePtr, BackgroundSyncNetworkObserver caller, int newConnectionType);
    }
}


text:
Q: JMESPath join output and strip unwanted chars I have the following json;
[
  {
    "compartment-id": "CompartmentID-123",
    "defined-tags": {},
    "display-name": "Test-123",
    "freeform-tags": {},
    "id": "ID-ABC",
    "kms-key-id": "",
    "lifecycle-state": "ACTIVE",
  }
]

I am looking to join the id and display-name params into a comma seperate string with " and [] stripped, like so:
ID-ABC,Test-123

Closest I've managed to get so far is:
oci fs file-system list -c $compart --availability-domain $ad --query 'data[].[id,"display-name"][]' | tr -d '" '
[
ID-ABC,
Test-123
]

Wondering if there's a cleaner way of doing this all within JMESPath without piping output to tr, jq, sed or awk etc etc
UPDATE based on input from β.εηοιτ.βε
So close...
oci fs file-system list -c $compart --availability-domain $ad3 --query 'data[0].join(',', [id, "display-name"])'

Returns
ParseError: invalid token: Parse error at column 13, token "," (COMMA), for expression:
"data[0].join(,, [id, "display-name"])"

However playing around with quotes, best I can get is by using;
oci fs file-system list -c $compart --availability-domain $ad3 --query "data[0].join(',', [id, 'display-name'])"
Private key passphrase:
"ID-ABC,display-name"

I'm beginning to wonder if there's something wrong with my local settings or shell, whereby it's getting confused by the quotes marks?

A: Since you do have an array, you will first need to target the first element of the array, to get rid of it. Since an array is 0-based, this can easily be achieved via:
data[0]

which gives
{
  "compartment-id": "CompartmentID-123",
  "defined-tags": {},
  "display-name": "Test-123",
  "freeform-tags": {},
  "id": "ID-ABC",
  "kms-key-id": "",
  "lifecycle-state": "ACTIVE"
}

Then, in order to create the string you are looking for, you can use the join function, that accepts, as parameter, a glue character and array.
You can get the array you look for pretty easily, using filters and multiselect lists:
data[0].[id, "display-name"]

which gives
[
  "ID-ABC",
  "Test-123"
]

Now we just need to apply the join function on top of all this:
data[0].join(',', [id, "display-name"])

which finally gives:
"ID-ABC,Test-123"

Additional notes on quoting in JMESPath:

*

*
'some-string'

is a raw literal string and won't be interpreted

*
`some-string`

is another form of raw literal string and won't be interpreted

*
"some-string"

is a literal expression and will be interpreted

So:
data[0].join(',', [id, "display-name"])

and
data[0].join(`,`, [id, "display-name"])

are two strictly equals queries.
While
data[0].join(',', [id, 'display-name'])

has a totally different meaning and would end you with the string display-name being the second element of your array, so it will result in
"ID-ABC,display-name"

All of this based on the JSON structure:
{
   "data":[
      {
         "compartment-id":"CompartmentID-123",
         "defined-tags":{},
         "display-name":"Test-123",
         "freeform-tags":{},
         "id":"ID-ABC",
         "kms-key-id":"",
         "lifecycle-state":"ACTIVE"
      }
   ]
}


Microsoft's showcasing the power of universal apps, machine learning, and the Microsoft ecosystem with Story Remix, an intriguing new app that helps you create personalized videos quickly and easily.
That's cool—and that flexibility extends to highlighting a particular person in your video. If you're creating a video from imagery that includes several different people, Story Remix will identify them all and let you choose a "star." Changing the star will also cause the video to remix itself on the fly. Nifty!
If you're not digging the videos Story Remix creates, you have a couple of different options. Simply clicking the Remix button again reorganizes the video with a new vibe, new pictures, and new music, or you can click an Edit Story button to take more manual control.
The main Story Remix interface.
Those manual editing controls seem reasonably potent and include a few particularly helpful features. Not only can you rearrange and edit the flow of images used in the video—including panning and zooming on the fly—but you can also add text to a scene or pull in 3D objects from Remix 3D. Since Story Remix relies on Microsoft's machine smarts, you can configure that text to follow a person as she moves around a video, keeping the words in the same position in relation to her throughout.
The Remix 3D integration's more interesting, and the key to Story Remix's mixed-reality chops. Once you find a 3D image you like, you can add it to the video manually. Even better, the app supports animations found in Remix 3D. In one example, a 3D tyrannosaurus rex chased a woman in front of a volcano, while another demo added a fire animation to a soccer ball in a clip from a kids' game. While we haven't tried it in real life, adding those effects appeared fast and simple in the demonstrations.
Story Remix is also rife with features Microsoft's been pushing recently, including touch support, collaborative features, seamless transfer of imagery between devices, and the machine-learning functions the entire app revolves around.
All in all, Microsoft's Story Remix app looks impressive, and it'll work on Windows 10, Android, and iOS when it debuts. Speaking of which, Microsoft didn't announce a release date for the app, but it was introduced as part of the Windows 10 Fall Creators Update unveiling. You can see Story Remix in action here.


text:
#SportsReport: Medina Spirit stripped of victory in last year's Kentucky Derby
Dougtone/Flickr
NHL:
David Pastrnak had two goals and an assist and the Boston Bruins rolled past the Western Conference-leading Colorado Avalanche 5-1. Patrice Bergeron, Jake DeBrusk and Charlie Coyle also scored for Boston, which has won two straight. Jeremy Swayman had 28 saves and Taylor Hall added three assists. Pastrnak now has a team-leading 27 goals on the season.
Nathan MacKinnon had the lone goal for Colorado, which had its two-game win streak snapped. Darcy Kuemper finished with 40 saves.
In other NHL ice action:
Tyler Motte had a goal and an assist, and the Vancouver Canucks beat the Seattle Kraken 5-2. Travis Hamonic, Vasily Podkolzin, Bo Horvat and Tanner Pearson also scored for the Canucks. Jared McCann, who was playing in his 400th NHL game, and Mark Giordano scored for the Kraken, who lost their fourth straight game. Thatcher Demko stopped 25 of 27 shots for the Canucks. Kraken goalie Chris Driedger made a season-high 41 saves. Vancouver's 46 shots was also a season high.
Brett Pesce scored 4 minutes, 42 seconds into overtime, Vincent Trocheck had a goal and an assist and the Metropolitan Division-leading Carolina Hurricanes defeated the Philadelphia Flyers 4-3. Nino Niederreiter and Teuvo Teravainen also scored for the Hurricanes, who won their third straight. Gerry Mayhew, Patrick Brown and Oskar Lindblom tallied goals for the Flyers. Philadelphia, playing its second contest of a club-record eight-game homestand, lost its fifth in a row and 18th in the past 20.
Elias Lindholm's go-ahead goal with 47 seconds remaining extended his goal streak to eight games and the Calgary Flames tied a franchise record with their 10th consecutive victory, winning 3-1 over the Winnipeg Jets on Monday. Sean Monahan and Tyler Toffoli, into an empty net, also scored for Calgary, which wrapped up a perfect seven-game homestand. The 10-game winning streak ties a franchise record. That's only happened twice before. Once was in the 2016-17 season with the streak beginning five years ago to this day. The other time was in 1978-79 when the franchise was still in Atlanta.
Josh Anderson and Cole Caufield had three-point games and the Montreal Canadiens beat the Toronto Maple Leafs 5-2. Anderson had two goals and an assist, and Caufield a goal and two assists as the Canadiens won their third straight. Rem Pitlick also scored and Brendan Gallagher had two assists. Samuel Montembeault made 35 saves. Ilya Mikheyev and Pierre Engvall scored for Toronto. Petr Mrazek allowed five goals on 25 shots.
COLLEGE BASKETBALL:
Malaki Branham scored 27 points and No. 22 Ohio State rallied to beat Indiana 80-69 in overtime. Indiana led by four with 2:47 to go in regulation, but E.J. Liddell forced a steal with 1:11 remaining and slammed home the tying dunk with six seconds left.
The Hoosiers jumped ahead by two early in overtime, but Jamari Wheeler hit a go-ahead 3-pointer with 2:58 left as Ohio State took the lead for good.
Liddell had 16 points and Eugene Brown III scored 10. The Buckeyes led by 10 with 12:06 remaining in the second half, but the Hoosiers used an 18-4 run to grab a 59-55 lead with 5:09 left.
Xavier Johnson led Indiana with 16 points, going 10 of 10 from the free-throw line.
In other college basketball action:
Adam Flagler scored a career-high 29 points and James Akinjo's jumper with 14 seconds remaining provided the winning points as No. 10 Baylor defeated Oklahoma State 66-64 in overtime. Oklahoma State's Isaac Likekele missed a 3-pointer at the buzzer that would have won it. Matthew Mayer added 12 points for Baylor. Bryce Thompson scored 15 points and Moussa Cisse added 12 points, 10 rebounds and five blocks for the Cowboys, Oklahoma State beat Baylor 61-54 on Jan. 15 when the Bears were ranked No. 1.
Jaylen Clark had 16 points and nine rebounds in his third straight start and No. 12 UCLA avoided a second-half collapse to beat Arizona State 66-52. UCLA improved to 20-5 overall and 12-4 in the Pac-12 with its third consecutive victory. Arizona State fell to 10-16 overall and 6-10 in league play. The Sun Devils closed within one point to cap a 24-12 surge that opened the second half. But the Bruins answered with a 14-2 run to stay in front for good. DJ Horne, Jay Heath and Marreon Jackson scored nine points each for ASU.
Michigan basketball coach Juwan Howard has been suspended the final five games of the regular season and fined $40,000 for hitting a Wisconsin assistant in the head, triggering a postgame melee. The Big Ten Conference also suspended three players one game for the altercation following the 15th-ranked Badgers' 77-63 win on Sunday: Michigan's Moussa Diabate and Terrance Williams II, and Jahcobi Neath of Wisconsin.
Wisconsin coach Greg Gard was fined $10,000 for violating the conference's sportsmanship policy, but was not suspended.
Howard is expected to be back for the Big Ten tournament, which begins March 9 in Indianapolis.
Gonzaga is the unanimous No. 1 in the latest Associated Press men's basketball poll. The Zags aren't likely to budge the way they're dominating the West Coast Conference.
Gonzaga remained at No. 1 for the second straight week, receiving all 61 votes from a media panel. Arizona moved up a spot to No. 2 for its highest ranking in four years, with Auburn, Purdue and Kansas rounding out the top five.
Gonzaga is winning its WCC games by an average of 27 points. Saint Mary's gave the WCC two ranked teams and No. 25 Iowa moved into the poll for the first time this season.
Expect the NCAA Men's Final Four to have a more familiar look and feel to it this spring. And that's not just because it'll be in New Orleans for a record sixth time. A capacity crowd of about 70,000 is expected in the Superdome. The free, open Friday practices and the college All-Star game are back on the schedule. So are the sprawling Fan Fest and March Madness Music Festival. The National Association of Basketball Coaches convention that is traditionally held in conjunction with the Final Four also remains on track to take place as an in-person event for the first time since 2019.
Goran Dragic plans to sign with Brooklyn, giving the Nets a veteran boost in the backcourt. Agent Bill Duffy said Monday that Dragic was going to Brooklyn, where the Nets need guard help after trading James Harden to Philadelphia. Ben Simmons, acquired in that deal, still isn't ready to play after sitting out all season, and Kyrie Irving still can't play in home games because he hasn't met New York City's vaccine requirement. Dragic played in just five games this season in Toronto, where he was traded from Miami in the offseason in the deal for Kyle Lowry.
Elsewhere around the NBA:
When the All-Star break ends, the stretch run begins. The All-Star weekend came at about the 60-game mark for teams, far beyond the midpoint of the 82-game schedule. It's a sprint to the finish now. The Nets could have Kevin Durant and Ben Simmons on the floor soon to spark a surge. But, the Lakers might be without Anthony Davis for more than a month, putting a heavy burden on LeBron James.
MLB:
Baseball negotiations resumed with renewed intensity Monday in an effort to salvage opening day, and Major League Baseball made slight moves toward locked-out players. With perhaps a week left to salvage opening day, union head Tony Clark attended negotiations for the first time since the MLB lockout began, accompanied by New York Mets stars Max Scherzer and Francisco Lindor.
MLB increased its offer of a bonus pool for pre-arbitration players by $5 million to $20 million, a fraction of the $115 million the union has asked for.
Clubs also increased their proposal for a lottery for the amateur draft from the top three picks to the top four. Players have asked for the top eight.
HORSE RACING:
Medina Spirit has been stripped of the victory in last year's Kentucky Derby and Mandaloun has been declared the winner in a ruling by state racing stewards.
The since-deceased Medina Spirit tested positive after the race last May for a steroid, betamethasone, that is legal in Kentucky but banned on race day. Medina Spirit finished half a length ahead of Mandaloun in the race, giving trainer Bob Baffert what was then his seventh Kentucky Derby title. Baffert was subsequently banned for two years by Churchill Downs following the positive test.
Monday's decision by the Kentucky Horse Racing Commission makes Medina Spirit the second horse in the 147-year history of the race to be disqualified for a banned substance. The first was Dancer's Image in 1968.
TENNIS:
Novak Djokovic has won his first match of the year after beating Lorenzo Musetti 6-3, 6-3 to open the Dubai Championships. Djokovic couldn't defend his Australian Open title last month because he was deported from the country for being unvaccinated. The United Arab Emirates allowed him entry, and Djokovic cashed in at a tournament he's won five times. He next faces Karen Khachanov or Alex de Minaur.
NFL:
Wes Phillips will follow Kevin O'Connell to Minnesota from the Super Bowl champion Los Angeles Rams. Phillips will serve as offensive coordinator for the Vikings under their new head coach O'Connell. Phillips was one of five more assistants for O'Connell's staff finalized on Monday. The others are special teams coordinator Matt Daniels, defensive backs coach Daronte Jones, assistant special teams coach Ben Kotwica and outside linebackers coach and pass rush specialist Mike Smith. Phillips was the tight ends coach for the Rams for the last three years and added the passing game coordinator title in 2021.
In other NFL news:
The Houston Texans on Monday announced their full coaching staff under new coach Lovie Smith. New additions to the staff include tight ends coach Tim Berbenich, who spent last season as a running backs coach for the Raiders and offensive line coach George Warhop, who had the same job in Jacksonville for the past three seasons.
The NFL scouting combine will have a host of COVID-19 mitigation measures that are rankling agents and prospects. The combine told all 324 players invited to the league's annual evaluation gathering that they'll have to spend their time in a bubble and can only bring one support person such as a personal trainer. Most prospects have a team of support that includes nutritionists, therapists and others. Agents are miffed the restrictions were issued over the weekend with the Omicron variant wave receding. The NFL has resisted that idea of keeping players in a bubble during the pandemic.
SOCCER:
Pelé has extended a scheduled stay in a Sao Paulo hospital due to a urinary infection. Hospital Albert Einstein says in a statement on Monday that 81-year-old Pelé came in on Feb. 13 to continue treatment for his colon cancer, and days later doctors found the infection. The hospital says his clinical condition is stable, and his release should take place in the next few days. Pelé has had chemotherapy to treat the tumor that was found during routine exams at the end of August.
News Sports Report